Maison  >  Article  >  interface Web  >  Compréhension de la fonction JavaScript et combat pratique

Compréhension de la fonction JavaScript et combat pratique

小云云
小云云original
2018-01-03 10:52:531261parcourir

La fonction Function est le fondement de JavaScript et un point de bascule pour la réalisation de fonctions. Grâce à des exemples d'analyse, nous vous donnerons une compréhension plus approfondie de la fonction Function et expliquerons son utilisation pratique. Cet article vous apporte principalement un contenu pédagogique de base sur JavaScript, ainsi que sur la formation et la compréhension des fonctions Function. Apprenons ensemble.

La fonction est en effet un objet. Et toute fonction que nous définissons est en fait une instance de l'objet Function, ce qui peut également être compris comme pointant vers une instance de l'objet Function

Puisqu'il s'agit d'une instance de l'objet Function. une instance de l'instance d'objet, elle doit pointer vers une référence de type Function puisqu'elle pointe vers une adresse mémoire d'un type référence, vous pouvez aussi simplement comprendre la fonction que nous avons définie comme une variable, qui pointe vers une adresse d'un objet. type de référence. Cette adresse pointe vers une instance de l'objet Function

Puisque la fonction que nous avons définie est en fait une variable, cette adresse d'instance de fonction peut pointer vers plusieurs variables en même temps

. Regardez le code suivant :

var add = new Function("n", "m", "return n + m");

Ce qui précède est la définition de fonction standard, qui appelle le constructeur de l'objet Function. Ce constructeur Les N premiers paramètres sont par défaut les paramètres de la nouvelle fonction, jusqu'à ce que le dernier paramètre soit considéré comme le corps de la nouvelle fonction

D'après l'instruction ci-dessus, il. est très intuitif de voir que la variable add pointe vers un exemple de type de fonction, mais cette méthode de dénomination est très lourde, équivalente à :

(1) Expression de fonction


var add=function(n,m){
return n+m;
}

(2) Déclaration de fonction


function add(n,m){
return n+m;
}

Les déclarations en langage JavaScript étant avancées, la première édition préconise l'utilisation de la deuxième méthode pour définir les fonctions A. un article séparé sera écrit à l'avance sur les déclarations de fonctions

Mais la première méthode de définition permet de voir très intuitivement que add est une variable pointant vers une instance de fonction

Puisqu'il s'agit d'une variable, il peut être assigné à d'autres variables et passé en paramètre dans la fonction, peut également être renvoyé depuis la fonction

Donc var add2=add3=add maintenant les trois variables pointent vers la référence de cette instance. , maintenant add=null ; à l'avenir, les deux fonctions add2 et add3 pourront être utilisées sans aucune restriction. L'impact est dû au fait que add supprime la référence à l'objet fonction et pointe vers la référence null. Par conséquent, cela n'affecte pas add2 et. add3 fonctions du tout.

Ainsi, la fonction peut être transmise en tant que paramètre d'autres fonctions.

Ainsi, la fonction peut être renvoyée comme valeur de retour de la fonction.

Comme le nom de la fonction est juste une variable pointant vers l'instance de fonction, il n'y aura pas de surcharge de fonctions en JavaScript, car la même variable pointe vers la même adresse de référence. La dernière représentation est toujours la même fonction

Puisqu'une fonction est une instance d'un objet, elle doit avoir des attributs et des méthodes. Par conséquent, les fonctions en JavaScript ont des attributs et des méthodes

est plus important Les quatre arguments de propriétés, this, length, prototype

.

arguments représentent le tableau de classes de paramètres de la fonction actuelle. Cette propriété est très spéciale. Elle possède également une propriété appelée appelé,

propriété arguments.callee Un pointeur est enregistré, qui pointe vers l'entité de fonction avec. cet attribut arguments (qui est équivalent au nom de la fonction)

Cet attribut est l'environnement actuel, similaire à celui-ci en C#, qui représente le contexte actuel

L'attribut length indique le nombre maximum de Les paramètres reçus par la fonction actuelle

prototype indiquent le prototype de la fonction, ce qui signifie que les méthodes de l'instance d'objet sont entièrement enregistrées, en d'autres termes, toutes les méthodes du prototype sont héritées. Par exemple toString(. ) valueOf() etc.

Ensuite, jetons un coup d'œil aux types de fonctions de fonction

Fonctions ordinaires : présentation des caractéristiques des fonctions ordinaires : couverture du même nom , objets arguments, valeur de retour par défaut, etc.



function ShowName(name) {
 alert(name);
}
Fonctions anonymes : Présentation des caractéristiques des fonctions anonymes : fonctions anonymes variables, fonctions anonymes sans nom.



//变量匿名函数,左侧可以为变量、事件等
var anonymousNormal = function (p1, p2) {
 alert(p1+p2);
}
anonymousNormal(3,6);//输出9
Fonction de fermeture : Présenter les caractéristiques de la fonction de fermeture.


function funA() {
 var i = 0;
 function funB() { //闭包函数funB
  i++;
  alert(i)
 }
 return funB;
}
var allShowA = funA(); //全局变量引用:累加输出1,2,3,4等
 
function partShowA() {
 var showa = funA();//局部变量引用:只输出1
 showa();
}
Recommandations associées :

Introduction détaillée de la fonction register_shutdown_function

fonction javascript Function Compréhension et pratique pratique_Connaissances de base

Explication détaillée de l'utilisation des instances de la méthode Function Bind en Javascript

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn