2016-07-28 7 views
0
function greet(){ 
    return 'Hi ' + this.name; 
} 
greet = greet.bind({name: 'Tom'}); 
greet(); // Hi Tom 
greet = greet.bind({name: 'Harry'}); 
greet(); // Hi Tom (Why??) 

'bind'は 'this'の新しい値で新しい関数を返す必要があります。なぜこれは機能しないのですか?'bind'を使って関数のコンテキストを変更するには?

+1

短い答えはそれを得た、 –

+0

を_rebound_することはできませんバインドされた関数で、感謝です! –

答えて

1

関数がカスタムオブジェクトにバインドされると、変更することはできません。これは、本来の機能は変更されませんどこに何ができるかです:

function greet(){ 
    return 'Hi ' + this.name; 
} 
greet1 = greet.bind({name: 'Tom'}); 
greet1(); // Hi Tom 
greet1 = greet.bind({name: 'Harry'}); 
greet1(); // Hi Harry 
関連する問題