Maison > Article > interface Web > Utilisation simple de apply et call en js
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
call.
function A() { this.getName = function (xx) { return xx; } } function B() { } var a = new A(); console.log( a.getName('i am A') ); //i am A var b = new B() ; console.log( a.getName.call(b,'i am B') ); // i am BIl 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
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]) ); //6Utilisation 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 :
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!