L'introduction de call() sur le site officiel de Mozilla est :
Paramètres Call()
thisArg
La méthode call() en Javascript
Ne faites pas attention aux explications compliquées ci-dessus et démarrez le processus étape par étape.
Méthode Instance d'appel()
Alors j'ai écrit un autre Hello, World :
Ensuite, regardons un autre exemple.
print.call(obj, "Bonjour", "Monde");
Seulement ici, ce que nous transmettons n'est toujours pas défini, car l'indéfini dans l'exemple précédent est dû au fait qu'un paramètre doit être transmis. Cela ne reflète pas vraiment l'utilisation de call. Regardons un meilleur exemple.
var h={p1:"bonjour", p2:"monde", print:print};
h.print("fd");
var h2={p1:"bonjour", p2:"monde"};
print.call(h2, "rien");
Appeler signifie emprunter les méthodes et les objets d'autres personnes pour appeler, tout comme appeler les vôtres. Dans h.print, lorsque la fonction est appelée en tant que méthode, cela pointe vers l'objet concerné. C'est juste que dans cet exemple, nous n'avons pas compris si h2 appelait print ou print appelait h2. J'ai donc cité l'exemple de Mozilla
si (prix < 0)
throw RangeError('Impossible de créer le produit "'nom '" avec un prix négatif');
Renvoyez ceci ;
>
fonction Alimentaire(nom, prix) {
Product.call(ce, nom, prix);
This.category = 'nourriture';
>
Food.prototype = nouveau produit();
fromage var = new Food('feta', 5);
console.log(fromage);
var h2= fonction(non){
This.p1 = "bonjour";
This.p2 = "monde";
Print.call(this, "rien");
};
h2();
h2 fait ici office de récepteur pour appeler la fonction print. Comme dans l'exemple Food, au sein d'un constructeur enfant, vous pouvez implémenter l'héritage en appelant la méthode d'appel du constructeur parent.
Quant aux avantages de la méthode Call, ils sont présentés dans "Effective JavaScript".
1. Utilisez la méthode d'appel pour personnaliser le récepteur afin qu'il appelle la fonction.
2. Utilisez la méthode call pour appeler des méthodes qui n'existent pas dans l'objet donné.
3. Utilisez la méthode call pour définir des fonctions d'ordre supérieur qui permettent aux utilisateurs de spécifier des récepteurs pour la fonction de rappel.