Maison > interface Web > js tutoriel > Explication détaillée des différentes manières d'appeler des fonctions et du pointage de celles-ci

Explication détaillée des différentes manières d'appeler des fonctions et du pointage de celles-ci

小云云
Libérer: 2018-02-06 09:22:02
original
1966 Les gens l'ont consulté

1. Méthode d'appel de fonction

1. En tant que fonction, une méthode directe et facile à comprendre (c'est-à-dire un mode d'appel de fonction).

2. En tant que méthode, la méthode est connectée à l'objet et appelée par l'objet. Ce formulaire est une programmation orientée objet.

3. En tant que constructeur, un nouvel objet est créé pendant le processus de construction.

4. Via la méthode apply ou call de la fonction.

Cet article vous apporte principalement une brève discussion sur les différentes manières d'appeler une fonction et la direction de celle-ci. L'éditeur le trouve plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence pour tout le monde. Suivons l'éditeur pour y jeter un œil, j'espère que cela pourra aider tout le monde.

2. Paramètres de fonction

1. Paramètres entrants

(1) Il y a plus de variables entrantes que de variables de définition de fonction.

(2) Les variables de définition de fonction sont transmises dans plus d'une variable, et les variables supplémentaires ne sont pas définies

2 Lorsque la fonction est appelée, les deux arguments des paramètres et celui-ci sont passés en invisible. (c'est-à-dire que l'argument et celui-ci sont discrètement transmis à la fonction et agissent dans le cadre de la fonction).

(1) argument : l'ensemble des variables transmises à la fonction lorsque la fonction est appelée (a l'attribut argument.length)

par exemple : argument[0] fait référence au premier paramètre passé dans la fonction

(2) celle-ci est associée à un objet.

Selon la méthode d'appel, l'intérêt est également différent. Il s'agit donc du contexte d'invocation.

3. Pointant vers ceci

1. Mode d'appel de fonction (this->window)

Cette fonction n'appartient aux attributs d'aucun objet.

function fn1(){
 //some code
}
fn1();
或着:
var fn2=function(){
 //some code
}
fn2();
使用这种方式调用函数,函数的上下文是全局上下文(global context即window)。this->window。
Copier après la connexion

2. Mode d'appel de méthode (this-> l'objet auquel appartient la méthode)

Cette fonction est une propriété d'un objet Lorsque cette fonction est appelée, cette fonction. est considéré comme une méthode de cet objet.

var obj={
 //some code;
};
obj.getname=function(){
 //some name
}
obj.getname();
函数的上下文是这个对象(例子中的 obj)。this->obj
Copier après la connexion

3. Mode d'appel du constructeur (this-> nouvel objet créé)

Lorsqu'une fonction est appelée en tant que constructeur, elle présente les caractéristiques suivantes :

Un nouvel objet est créé ;

Le nouvel objet est passé au constructeur en tant que paramètre this, ce qui signifie que le nouvel objet est le contexte de la fonction constructeur

S'il n'y en a pas ; instruction de retour explicite, ce nouvel objet sera renvoyé implicitement (c'est-à-dire qu'il sera renvoyé silencieusement) et deviendra la valeur de ce constructeur.

function Fn(){
 this.a=function(){
   return this;
 }
}
var n=new Fn();
console.log(n.a());//Fn{a:f}
console.log(n);//fn{a:f}
//此例中,构造了一个构造函数Fn((),利用new关键字调用时一个空的对象被创建出来,并传递到函数中作为this存在。this-Fn(新的)
//这个构造器同时创建了a属性,并将此属性作为一个方法赋予给它创建出新对象的实例。
Copier après la connexion

4.apply() obtient la méthode call() (this-> peut être n'importe quel objet que nous spécifions)

(1) apply(), deux paramètres. Premier paramètre : l'objet utilisé comme contexte de fonction. Deuxième paramètre : un tableau de paramètres.

(2) call(), deux paramètres. Premier paramètre : l'objet utilisé comme contexte de fonction. Le deuxième paramètre : liste d'arguments.

call() et apply() sont principalement utilisés pour les rappels de fonctions.

function circle(list,calback){
 for(var i=0;i<list.length;i++){
   calback.call(list[i],i);
 }
}
var list=[&#39;a&#39;,&#39;b&#39;,&#39;c&#39;];
circle(list,function(index){
 console.log(index);//0,1,2(即传进来的i值)
 console.log(this);//a,b,c(call的第一个参数)
});
//this->call()传递进来的第一个参数。
Copier après la connexion

Recommandations associées :

exécution par lots mysqli de plusieurs instructions et un appel de fonction pour exécuter plusieurs instructions

Explication détaillée des opérations de données et des appels de fonction dans la page de l'applet WeChat

Comment résoudre le problème de la fonction non définie lorsque la fonction parent js appelle la fonction enfant

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!

É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