IIFE(立即执行函数)的上下文规则:上下文是window对象
var a=1;
var obj={
a:2,
fun:(function(){
var a=this.a;
return function () {
console.log(a+this.a)
}
})()
};
obj.fun();
var a=this.a; 这里的a指的是挂在window上的a 所以a=1
console.log(a+this.a)变为 console.log(1+this.a)
console.log(a+this.a)里的this指的是obj
因为是obj调用的,所以就是this.a=2