définition:
bind()
Procédé crée une nouvelle fonction, bind()
est appelé, cette nouvelle fonction this
est spécifiée en tant bind()
que premier paramètre, et les autres arguments en tant que paramètres de la nouvelle fonction pour un usage pendant les appels.
utilisation:
bind()
L'utilisation la plus simple est de créer une fonction, peu importe appelée, cette fonction a la même this
valeur.
<script> var name = ' hhh ' ; demo function () { CONSOLE.LOG ( ' de demo.name ' , ce .name); } Var a = { nom: " linjianbin " , } var demo2 = demo.bind (a); demo (); /// hhh demo2 (); // linjianbin </ script>
2.bind()
Une autre utilisation la plus simple est d'avoir une fonction prédéfinie des paramètres initiaux. Tant que ces paramètres ( le cas échéant) en tant que bind()
paramètre écrit dans this
le dos. Lorsque la fonction de liaison est appelée, ces paramètres seront insérés dans la position de départ de la liste des paramètres de la fonction objective, les paramètres passés aux fonctions de liaison seront les suivre. ,
var démonstration = function () { return arguments; } Var demo2 = demo.bind (demo, 23 ); console.log (demo2 ( 1 , 2 , 3 , 4 , 5 )); // 23,1,2,3,4,5
3. Par défaut, l'utilisation window.setTimeout()
, le this
point clé de window
(ou des global
objets). Lorsque la méthode de classe nécessite le this
point d'instances de la classe, vous devrez peut - être explicitement this
lier à la fonction de rappel, vous ne perdez pas la référence de l' instance.
<script> fonction LateBloomer () { ce .petalCount = 10 + 1 ; } // 在1秒钟后声明fleur LateBloomer.prototype.bloom = function () { window.setTimeout ( ce .declare.bind ( ce ), 1000 ); }; LateBloomer.prototype.declare = function () { console.log ( ' Je suis une belle fleur avec ' + ce .petalCount + ' pétales! ' ); }; var Flower = new new LateBloomer (); flower.bloom (); // seconde après appel 'Déclare' Méthode </ script>