文章链接
举个栗子
- 作为对象调用时,指向该对象 obj.b(); // 指向obj
- 作为函数调用, var b = obj.b; b(); // 指向全局window
- 作为构造函数调用 var b = new Fun(); // this指向当前实例对象
- 作为call与apply调用 obj.b.apply(object, []); // this指向当前的object
但是!如何解释下面这个例子呢?
var value = 1
var foo = {
value: 2,
bar: function () {
return this.value
},
}
console.log(foo.bar()) // 2
console.log((false || foo.bar)()) // 1