为什么第一次this指向的全局,第二次指向了obj,调用不是一样的吗,还是第一次赋值的时候作用域链有所变化?希望大神能给指点一下,谢谢了!
var name = 'ddd';
var obj = {
name: "zcl",
getName: function(){
return this.name;
}
}
console.log((obj.getName = obj.getName)());
console.log(obj.getName());
result1:ddd
result2:zcl
这是一个赋值表达式,关键它会返回一个值

举例:
所以
(obj.getName = obj.getName)()
等同于(function(){return this.name;})()
至于this的调用就不多说了,有很多资料可以查看,最简单的办法this始终指向调用者(this的指向是在执行时而非定义时确定)