Maison >interface Web >js tutoriel >Appels de fonction JS et problèmes liés aux arguments de paramètres implicites et ceci
##1. Plusieurs manières différentes d'appeler des fonctions :
####1 Appeler en fonction
####2. objet, prenant en charge la programmation orientée objet
####3. Appeler en tant que constructeur pour créer un nouvel objet
####4 Appeler via la méthode apply() ou call(), Cette méthode est relativement. le plus compliqué
## 2. Les appels de fonction transmettront deux paramètres implicites et existeront dans le cadre de la fonction : les arguments et ceci
###Les paramètres de fonction sont transmis Comment traiter les incohérences avec les paramètres formels :
####1. Paramètres réels>Paramètres formels--》Les paramètres réels excédentaires ne seront pas alloués
####2. Paramètres réels
## 3.
####1 Contexte de la fonction : dépend de la méthode d'appel de la fonction (quatre méthodes d'appel).
####2. arguments : une collection de tous les paramètres, avec un attribut de longueur, qui peut être obtenu en utilisant des arguments[2], etc. mais les arguments ne sont pas des tableaux, et ces méthodes sans tableaux
# ###3. ceci : fait référence à un objet qui est implicitement associé à l'appel de fonction, appelé le contexte de fonction
## Quatre :
####1. un appel de fonction : fait référence à la première méthode des quatre méthodes ci-dessus, qui est différente des trois autres
Par exemple : function test(a,b){}/var test = function(a,b){}
Le contexte de la fonction en ce moment Il s'agit d'une fenêtre, c'est-à-dire **this==window**
####2 Appel "En tant que méthode" : Lorsqu'une fonction est affectée à un. object et cet attribut qui fait référence à la fonction est utilisé
I. L'objet auquel appartient une méthode peut être appelé avec ceci dans le corps de la méthode
var o = {}; o.test = function(){}; o.test();
A ce moment, la fonction. le contexte est l'objet o, c'est-à-dire **this==o**
####3 Appel "En tant que constructeur" : identique à la déclaration de fonction, mais différent de la façon d'appeler le. fonction, utilisez le mot-clé new avant l'appel de la fonction
function test(){return this};
new test();
###Spécificités du constructeur :
## ##I. Créer un nouvel objet vide
####II. Passer à L'objet du constructeur est cet objet, devenant ainsi le contexte du constructeur
####III. valeur de retour, l'objet nouvellement créé est renvoyé comme valeur de retour du constructeur
function Ninja(){ this.skulk = function(){return this}; //无显式返回,故返回this===o }===function Ninja(){ var o = {}; o.skulk = function(){return this;}; return o; } var ninja1 = new Ninja(); var ninja2 = new Ninja(); ninja1.skulk === ninja1; ninja2.skulk === ninja2;
####apply() et call() : spécifiez explicitement n'importe quel objet comme contexte de fonction
apply() nécessite deux paramètres : 1. L'objet comme contexte de fonction 2. As Le tableau de paramètres de fonction
call() nécessite également deux paramètres : la différence est que le deuxième paramètre est une liste de paramètres
## permet à n'importe quel élément d'être utilisé comme contexte de apply() et call()
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!