我对以下脚本在Chrome的js控制台中执行时的行为感到惊讶:

var me = { name: 'John'};

function theFunc(){
 console.log(this);
}

theFunc.bind(me);

theFunc();//this is window???


我期待绑定函数调用绑定到对象文字...

最佳答案

.bind()返回一个新函数,然后必须将其设置为要保存的变量。

请参见MDN



var me = { name: 'John'};

function theFunc(){
 console.log(this);
}

theFunc = theFunc.bind(me);

theFunc();

10-01 01:25