偶尔看到一篇大佬写的js中this绑定的文章,受益匪浅
就是又一个问题一直百思不得其解,望各位大佬指点
文章中讲显式绑定不能解决隐式绑定丢失问题,我试了下
function fn(){
console.log(this.a)
}
var obj = {
a : 1,
fn : fn
};
var bar = obj.fn;
bar() //undefined
bar.call(obj) //1
这样的运行结果的话,为什么不能解决呢 ?望各位大佬不吝赐教,谢谢
bar() 函数的调用者是window window上面并没有 a属性,所以是undefine。 而第二个由于call 改变了this的指向,所以这个时候this.a的指向 就是obj对象 所以就相当于 obj.bar()