Maison > Article > interface Web > Ceci dans Js pointe vers le problème de apply().call(),bind()
Raison de la prise de notes : La popularité de JavaScript est devenue imparable. Les dérivés AngularJs, Node.js et BootStrmp ont de plus en plus perdu leurs avantages dans le développement back-end pour les petites et moyennes entreprises. qui peut s'appuyer entièrement sur l'expérience. L'informatique change la vie. En tant que programmeur .Net depuis trois ans, je sens maintenant profondément qu'être conservateur est en fait une peur, éviter le progrès des temps demande de la passion et de la motivation !
Texte :
1. Que font apply().call() et bind() ?
Ces trois sont modifiés par ce que cela pointe dans la méthode
2. Qu'est-ce que c'est
Ceci fait référence à l'objet d'exécution de la méthode que vous appelez actuellement, comme la méthode setTimeout La sortie de this
1 setTimeout(function(){ 2 console.log(this) 3 },1000)
est :
Window {external: Object, chrome: Object, document: document, Alax: Object, a2: Object…}
car setTimeout est entièrement appelé lorsque Window.setTimeout Il appartient à une méthode de l'objet Window.
Définir un autre objet
var Alax={ name:'Alax', age:27, fuc:function(){ return this.age; } }
Logiquement parlant, l'utilisation de console.log (Alax.fun) devrait afficher 27, mais la situation réelle n'est pas définie, lequel Pourquoi ? Parce que lorsqu'il est appelé en dehors de l'objet Alax, l'objet réel est Window, et Window ne contient pas l'attribut age, ce qui signifie que ce pointeur a changé et doit être respécifié. N'oubliez pas d'attendre que le concept soit terminé avant de comparer ce que vous pensez. 🎜>
3. La différence entre call, apple et bind 1. Comparaison des paramètres Le format du paramètre d'appel est (thisvalue,arg1) l'appliquer is (thisvalue,[arg1,ar2...]) Le format du paramètre de liaison est (thisvalue,arg1,ar2...) Thisvalue fait référence au pointeur this à transmettre , Les paramètres suivants sont facultatifs et correspondent aux paramètres de la méthode un à un. S'ils sont transmis, ils peuvent être obtenus à l'aide d'arguments 2. Comparaison des résultats de retour . Call et apple font référence au passage de tous les paramètres aux arguments et renvoient directement le résultat de l'appel "bind signifie renvoyer une valeur entrante et renvoyer un nouveauaprès l'exécution de la méthode. La fonction doit ajouter ( ) pour appeler
Résumé : La méthode d'appel ci-dessus peut être
console.log((Alax.fuc).call(Alax)) console.log((Alax.fuc).apply(Alax)) console.log((Alax.fuc).bind(Alax)())Attacher un appel de paramètre
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!