2017-06-23 2 views
2

Je lie la fonction foo à l'objet myObject. Je m'attends à l'appel à foo avant de lier au journal global à la console, et après la liaison au journal myObject à la console.bind() pour la liaison à l'objet

var name = 'global'; 
 

 
function foo() { 
 
    console.log(this.name); 
 
} 
 

 
var myObject = { 
 
    name: 'myObject' 
 
}; 
 

 
foo(); 
 
foo.bind(myObject); 
 
foo();

La sortie est le message global dans les deux cas cependant.

+0

@le_m Ca y est! Je vous remercie! – BanksySan

+0

Copie possible de [Utilisation de la méthode JavaScript 'bind'] (https://stackoverflow.com/questions/2236747/use-of-the-javascript-bind-method) –

+0

@MikeMcCaughan Je ne pense pas que ce soit un doublon . Je savais ce que la méthode fait, juste mis en œuvre mal. – BanksySan

Répondre

3

foo.bind() renvoie une nouvelle fonction qui a la liaison, elle ne modifie pas la fonction d'origine.

var name = 'global'; 
 

 
function foo() { 
 
    console.log(this.name); 
 
} 
 

 
var myObject = { 
 
    name: 'myObject' 
 
}; 
 

 
foo(); 
 
bar = foo.bind(myObject); 
 
bar();