Le contenu de cet article concerne ce que font les méthodes apply() et call(). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Chaque fonction contient deux méthodes non héritées : apply() et call(). ;
Call et apply sont des méthodes de Function.prototype, donc chaque instance de fonction a des attributs call et apply
Function
La méthode call() et la méthode apply() ont le même effet ; : Changez ce pointeur.
La différence
La différence réside dans la façon dont ils reçoivent les paramètres :
call() : Le premier paramètre est que la valeur de ceci n'a pas changé, mais le reste les paramètres ont changé directement transmis à la fonction. Lors de l'utilisation de la méthode call(), les paramètres passés à la fonction doivent être listés un par un. Exemple : call(obj,a,b,c)
apply() : ce qui est transmis à la fonction est le tableau de paramètres. Exemple : apply(obj,[a,b,c])
Le code ci-dessus :
function add(c, d){ return this.a + this.b + c + d; } var o = {a:1, b:3}; add.call(o, 5, 7); // 1 + 3 + 5 + 7 = 16 this指向o add.apply(o, [10, 20]); // 1 + 3 + 10 + 20 = 34 this指向o
Tutoriel vidéo JavaScript du site Web PHP chinois !
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!