我刚刚尝试使用.bind()
进行概念验证,但注意到如果我尝试在这段代码中使用.bind()
,我会得到一个意外的标记“.”:
var myObj = {
foo: function(){
function bar(){
console.log(this);
}.bind(this); // errors
bar();
}
}
myObj.foo();
然而,如果我这样做:
var myObj = {
foo: function(){
var bar = function(){
console.log(this);
}.bind(this);
bar();
}
}
myObj.foo();
没问题,没有错误。能否有人解释一下这种行为的原因?我猜测这可能与函数解析的时间有关,但如果有更深入的解释,那就太好了!