Maison  >  Article  >  interface Web  >  Utilisation simple de apply et call en js

Utilisation simple de apply et call en js

小云云
小云云original
2017-12-09 13:29:001376parcourir

Call et apply semblent changer cela de manière dynamique. Lorsqu'un objet n'a pas une certaine méthode, mais que d'autres en ont, nous pouvons utiliser call ou apply pour fonctionner avec les méthodes d'autres objets. Dans cet article, nous partageons principalement avec vous l'utilisation simple de apply et call in js, dans l'espoir d'aider tout le monde.

call et apply sont deux méthodes de Function.prototype, qui sont implémentées en interne par le moteur JavaScript. Parce qu'elles appartiennent à Function.prototype, chaque instance d'objet Function, c'est-à-dire que chaque méthode a des attributs d'appel et d'application. .Comme ce sont des attributs de méthodes, leur utilisation est bien sûr spécifique aux méthodes. Ces deux méthodes se confondent facilement car elles ont la même fonction, mais elles sont simplement utilisées de différentes manières
De ce qui précède, on peut conclure <.> call, apply est utilisé pour les méthodes Afin de changer le pointeur this

qui appelle la méthode, exemple simple :

call.

function A() {
  this.getName = function (xx) {
    return xx;
  }
}

function B() {

}

var a = new A();
console.log( a.getName(&#39;i am A&#39;) ); //i am A

var b = new B() ;
console.log( a.getName.call(b,&#39;i am B&#39;) ); // i am B

Il n'y a pas de méthode dans la fonction B. La fonction A a une méthode getName() a.getName() est naturellement établie, mais que dois-je faire si. B doit également utiliser la méthode getName() ? Utilisez ensuite call(this,'parameter')! !

Vous pouvez à nouveau comprendre cette phrase - nous pouvons utiliser call ou apply pour appeler les méthodes d'autres objets à fonctionner. Call et apply semblent changer cela de manière dynamique. À l'origine, a.getName() pointe vers a,. call pointe dynamiquement cela vers b et devient b.getName()

apply

apply et call utilisent uniquement des paramètres différents

<.>

function A() {
  this.sun = function (a ,b) {
    return a+b;
  }
}

function B() {

}

var a = new A();
console.log( a.sun(1,2) ); //3

var b = new B() ;
console.log( a.sun.call(b,2,2) ); // 4

console.log( a.sun.apply(b,[3, 3]) ); //6

Utilisation générale de call et apply

Si utilisé plus fréquemment, sélectionnez via document.getElementsByTagName Le nœud dom est un type de tableau tableau. Il ne peut pas appliquer de méthodes push, pop et autres sous Array. On peut passer :

var domNodes = Array.prototype.slice.call(document.getElementsByTagName("*"));

pour que domNodes puisse appliquer toutes les méthodes sous Array.

Recommandations associées :


Explication détaillée de la façon d'utiliser call et apply en JavaScript pour implémenter l'héritage

call, apply , Que fait la liaison ? Pourquoi les utiliser ?

Explication détaillée de la différence entre appliquer et appeler en JavaScript

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!

Déclaration:
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