Les exemples de cet article décrivent l'utilisation des fonctions anonymes JavaScript. Partagez-le avec tout le monde pour votre référence. Les détails sont les suivants :
1. Définir une fonction
En JavaScript, une fonction peut être définie via une "déclaration de fonction" et une "expression de fonction", telles que
1. Définir une fonction via la "déclaration de fonction"
function t1(){}
2. Définir une fonction via "expression de fonction"
t2 = function(){}
Mais les effets de la définition des fonctions de deux manières sont différents
t1 est une déclaration de fonction. Lors de « l'analyse lexicale », AO.t1 = function(){},-------------il jouera un rôle dans l'étape « d'analyse lexicale »
t2 est une opération d'affectation lors de 'run', AO.t2 = function(){}, la valeur est le résultat renvoyé par l'expression de droite, ------elle n'entre en jeu que lors de 'run'. scène
2. Fonction anonyme
En JavaScript, les instructions entre parenthèses () sont exécutées comme des expressions. Comme mentionné ci-dessus, vous pouvez utiliser des « expressions de fonction » pour définir une fonction. Ensuite, nous pouvons définir une fonction dans (), telle que
.
(function t3(){alert(' i am t3');})
Si la fonction n'utilise pas de nom, modifiez-le comme suit
(function(){alert(' i am t3');})
Puisque l'instruction contenue dans () est une expression, elle a une valeur de retour de (function(){alert(' i am t3');}) est la fonction définie, qui peut être appelée immédiatement. , comme
(function(){alert(' i am t3');})()
Par conséquent, définissez une fonction sans nom entre parenthèses (), qui est appelée fonction anonyme. De cette manière, les fonctions anonymes sont exécutées immédiatement sans polluer la situation globale, ce qu'on appelle l'exécution immédiate des expressions de fonction.
3. jquery est une fonction anonyme
Le code de jquery est encapsulé dans une fonction anonyme. C'est le code le plus externe de jquery :
(function(window,undefined){})(window);//立即调用
Mais pourquoi jquery passe-t-il la fenêtre mais pas indéfini ?
Réponse : Le but du passage de la fenêtre est d'accélérer la recherche et de réduire le temps d'interrogation des variables. Par exemple, le code js suivant
function(){ function(){ function(){ function(){ document.getElementById(); //这个document将会沿作用域层层上找,直到最外层window全局。 } } } }
Afin d'accélérer la recherche interne des variables locales, jquery passe directement la fenêtre en paramètre, afin que la fenêtre soit sur l'AO interne de jquery.
La raison de ne pas transmettre undéfini est pour des raisons de sécurité, car dans les versions inférieures d'IE et de FF, undéfini peut être réaffecté, comme undéfini=3
;Déclarez la variable locale indéfinie (le nom est indéfini), et en même temps, sans passer de paramètres, la valeur sera naturellement indéfinie
J'espère que cet article sera utile à la conception de la programmation JavaScript de chacun.