var x = 20;
var a = {
x: 15,
fn: function() {
var x = 30;
return function() {
return this.x;
};
}
};
console.log(a.fn());//function() {}
console.log((a.fn())());//20
console.log(a.fn()());//20
console.log(a.fn()() === (a.fn())());//true
console.log(a.fn().call(this));//20
console.log(a.fn().call(a));//15
说下我的理解:
a.fn返回的是一个函数,直接将函数打印出来
返回1打印出的函数执行后的结果(为何this指向window还是无法理解)
同2
自执行函数(iife)的表示方法(function(){}())与function(){}()达到的是一样的效果,所以第四个console.log()打印出来的值是一样的
this指代window,返回window.x也就是20
返回a.x也就是15
感觉还是理解不透彻,可否有高人指点一二?
慕桂英546537
POPMUISE