先看下下面这道题。
var obj = {
go:function(){
console.log(this);
}
};
// obj.go(); // this指向 obj
// (0 || obj.go)(); // this指向 window
(0,obj.go)(); // this指向 window
obj.go()
这个大家应该都知道吧,谁调用this就指向谁。obj调用,此时this就指向obj。
(0 || obj.go)() 和 (0,obj.go)()
这俩个其实是类似的。
代码执行的时候,会先执行前面括号里面的,执行完括号的结果再执行后面的() , 此时是window调用的()。 因此此时this指向window。