Maison > interface Web > js tutoriel > Comprendre l'application et l'appel de fonctions dans les compétences JavaScript_javascript

Comprendre l'application et l'appel de fonctions dans les compétences JavaScript_javascript

WBOY
Libérer: 2016-05-16 15:50:52
original
1379 Les gens l'ont consulté

Les appels de fonctions JavaScript sont divisés en 4 modes :

1. Mode d'appel de méthode : c'est-à-dire que l'objet contient des attributs de méthode, Obj.methodName() ou Obj[methodName]().
2. Mode d'appel de fonction : methodName().
3. Mode d'appel du constructeur : new MethodName().
4. Appliquer et appeler les modes d'appel : ObjA.apply(ObjB,args[]) ou ObjA.call(ObjB,arg1,arg2...).

Lorsqu'une fonction est appelée, en plus de recevoir des paramètres formels, elle reçoit également ceci et des arguments. Parmi eux, il s'agit du contexte de l'objet fonction et les arguments sont les paramètres réels.
Appliquer et appeler implémente la même fonction, c'est-à-dire changer le contexte de l'objet fonction (la référence pointée par ceci. La différence est que les paramètres formels sont différents). apply correspond à des arguments ou à un tableau, call correspond à plusieurs paramètres formels individuels séparés par des virgules.

function add(c) 
{ 
  alert(this.a+this.b+c); 
} 
var test={a:1,b:2} 
add.call(test,3);
Copier après la connexion


Avant d'exécuter add.call(test,3);, add et test appartiennent à window, et cela pointe vers window à ce moment. add.call(test,3); Lors de l'exécution, entrez le corps de la méthode add. À ce moment, cela passe de window à test. À ce moment, this.a=test.a, this.b=test.b, et c sont transmis en tant que paramètres formels. La valeur de alert() est 1 2 3=6. apply a également la même fonction.

Extension et héritage par candidature et appel :

function Animal(name){   
   this.name = name;   
   this.showName = function(){   
     alert(this.name);   
   }   
 }   
   
 function Cat(name){  
   Animal.call(this, name); 
 }   
   
 var cat = new Cat("Black Cat");//执行时,Cat函数体的this由window切换为Cat{}, 
// Animal函数体的this.name通过形式参数传入即为Black Cat,最终cat 
 //得到的结果为cat=Cat{name:"Black Cat",showName: function(){ alert(this.name);}, 
 cat.showName();//执行时this由window切换为 
 //Cat{name:"Black Cat",showName: function(){ alert(this.name);} 此时this.name 
 //为this.name=Cat.name,因此为Black Cat。

Copier après la connexion

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal