Le chaînage de fonctions est une technique de programmation qui permet aux développeurs de créer une séquence d'opérations exécutées dans un ordre spécifique. En JavaScript, cela est réalisé en combinant le renvoi de la fonction elle-même et l'utilisation du mot-clé this.
Pour comprendre les principes du chaînage, examinons un exemple fonctionnel :
var one = function(num) {
this.oldnum = num;
this.add = function() {
this.oldnum ;
return this;
}
if (this instanceof one) {
return this.one;
} else {
return new one(num);
}
}
var test = one(1).add().add();
Dans cet exemple, la fonction one est construite avec un nombre. Il définit une fonction d'ajout qui incrémente la propriété oldnum et la renvoie. L'instruction if vérifie si la fonction est appelée en tant que constructeur (en utilisant new) et renvoie une nouvelle instance de celui-ci sinon.
L'expression one(1).add().add() commence par créer un new un objet avec une valeur initiale de 1. Ensuite, la fonction add est appelée deux fois sur cet objet, ce qui incrémente à chaque fois la propriété oldnum. Enfin, la variable test contient le résultat, qui est le seul objet dont oldnum est défini sur 3.
En revanche, l'exemple suivant ne s'enchaîne pas correctement :
var gmap = function() {
this.add = function() {
alert('add');
return this;
}
if (this instanceof gmap) {
return this.gmap;
} else {
return new gmap();
}
}
var test = gmap.add();
Ici, la fonction gmap ne renvoie pas cela dans ses méthodes, donc le chaînage est rompu. L'expression gmap.add() tente d'appeler la méthode add sur la fonction constructeur gmap elle-même, ce qui ne fonctionne pas comme prévu.
La clé d'un chaînage réussi est l'utilisation du mot clé this, qui fait référence au objet courant. En renvoyant ceci à partir des méthodes, l'appelant peut à nouveau accéder à l'objet et continuer la séquence d'opérations.
Le chaînage peut être une technique puissante pour écrire du code concis et expressif en JavaScript. En comprenant les principes décrits ci-dessus, les développeurs peuvent exploiter efficacement le chaînage pour améliorer les fonctionnalités de leur application.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3