6
votes

Puis-je utiliser des expressions Lambda à JQuery?

dans jQuery Lambda Fonctions , l'utilisateur demande des expressions Lambda de débogage de JQuery. J'ai cherché de nombreux sites et je suis incapable de trouver des exemples d'expressions Lambda à JQuery. Est-ce que quelqu'un sait si cela est possible, et si oui, où puis-je trouver quelques exemples?


1 commentaires

Vous voudrez peut-être aller plus en détail sur ce que vous voulez faire, peut-être avec un pseudo-code, pour clarifier votre question.


9 Réponses :


7
votes

L'expression de Lambda est utilisée (entre autres) en tant que sténographie pour spécifier Fonctions anonymes (également appelées délégués anonymes ou anonymes méthodes). C'est-à-dire que les pointeurs doivent fonctionner que vous définissez à la volée.

Voir cette extrémité commune JQuery Ajax Exemple: xxx

Le paramètre succès Utilise la définition de la fonction et le pointeur de JavaScript sur la fonction Fly. Donc oui, il existe une clé de syntaxe Lambda pour une fonction anonyme dans JavaScript . En fait, c'est très similaire à syntaxe Lambda's Lambda's de VB.NET, utilisé très puissamment pour l'expression arbres et fonctions anonymes: xxx

Donc, vous pourriez dire qu'il y a une syntaxe de Lambda à JQuery, bien que beaucoup le considèrent inélégant.

Si vous voulez dire Lambda expressions à spécifier Arbres d'expression , alors la réponse est simple: Non, JQuery ne fait pas Utilisez n'importe quel type de syntaxe Lambda pour les arbres d'expression .


0 commentaires

0
votes

jQuery est une extension du langage de programmation JavaScript. À ma connaissance, il n'y a pas de support Lambda en JavaScript. Ce que vous voyez n'est pas vraiment une expression de Lambda, mais une fonction de chaînage et de transmission de fonctions en tant qu'objets de première classe, beaucoup comme Func. Les Lambdas ne sont pas dans la langue de langue javascript.


4 commentaires

Quelle est la différence? Ils ne sont pas appelés Lambdas, mais ils font partie de la langue. Un lambda est juste un nom de fantaisie pour une fonction anonyme. Ou y a-t-il une différence que j'oublie?


Les Lambdas sont plus des fonctions sur la mouche. Ce que je voulais dire était que le soutien d'écrire quelque chose comme "x tel que x * 2" est absent. Vous pouvez même passer des fonctions et des appels de méthode en chaîne dans C. Ils n'étaient pas des lambas imo. Votre prise «Lambdas est une fonction anonyme de fantaisie» est de manière correcte.


Voici l'article de M. Lippert sur le même blogs.msdn.com/b/ericlippert/archive/2007/01/10/...


Les Lambdas reviennent toujours. ERGO, une fonction anonyme est un peu différente conceptuellement, mais comme dans JS, toutes les fonctions non retournées retournent indéfinies, vous pouvez affirmer que toutes les fonctions JS sont lambdas



1
votes

Le terme que vous recherchez dans JS est "Fonction anonyme", par ex. xxx

spécifiquement, la partie fonction anonyme est la xxx


0 commentaires

0
votes

Je pense qu'ils se réfèrent à une syntaxe de rappel de la vanille et au problème spécifique qu'ils ont sur le point de voir comment Visual Studio débogue JavaScript.

C'est ce que je pense qu'ils se réfèrent à une "Lambda" P>

$.get('http://...').on('data', 
    function(data) {
        ...
    }
);


0 commentaires

3
votes

JavaScript n'a pas vraiment d'expressions Lambda, car vous devez expliquer explicitement une valeur. Certaines langues comme Ruby renvoient automatiquement la valeur de la dernière déclaration, mais en JavaScript, cela ne fonctionne pas: xxx pré>

mais si vous ajoutez le retour de là, cela fonctionne. P>

var double = function(i) { return i * 2; }


3 commentaires

Nitpicky: Vous n'avez réellement pas besoin de retourner explicitement une valeur. Si vous appelez une fonction avec l'opérateur neuf , un objet est créé automatiquement en fonction du prototype de cette fonction et que ledit objet est automatiquement renvoyé. Dans d'autres contextes, la valeur non définie est automatiquement renvoyée.


Oh, mais ce n'est probablement pas ce que tu voulais dire.


Les expressions vraies mais Lambda voudraient normalement retourner des primitives comme des INT ou des chaînes. Pour les objets, une forme de constructeur sûr pourrait être un moyen d'aller.



0
votes

Vous pourriez être intéressé par le http://jslinq.codeplex.com/ projet. Bien que cela n'apporte pas réellement une vraie syntaxe Lambda à JavaScript, il vous permet d'utiliser les méthodes d'extension linq (telles que , ordonnance de commande , etc) sur tout ce qui est un tableau.


0 commentaires

0
votes

Depuis l'avènement de Ecmascript 6 (en juin 2015), vous pouvez utiliser "l'opérateur de flèche" et donc cela fonctionne: xxx

... au moins dans le chrome moderne , Firefox, Edge and Opera, selon https: //kangax.github. io / compat-table / es6 / # test-arrow_fonctions .

Notez que la fonctionnalité de la flèche ne définit pas "Ceci" dans les fonctions appelées, donc elles ne sont pas très bonnes comme événement Les gestionnaires, comparés à de bonnes anciennes fonctions anonymes: xxx


0 commentaires

0
votes

Yah, mais la flèche ne fonctionne pas dans IE11, comme "Let". http://kangax.github.io/compat-table/es6/ < Pré> xxx


0 commentaires

1
votes

Utilisez ce code:

lstResource.find(x => x.Module == Module && x.Form == Form && x.ResourceName == Resource).Value


0 commentaires