var name = "The Window";
var object = {
name : "My Object",
getNameFunc : function(){
return function(){
return this.name;
};
}
};
alert(object.getNameFunc()());
var name = "The Window";
var object = {
name : "My Object",
getNameFunc : function(){
var that = this;
return function(){
return that.name;
};
}
};
alert(object.getNameFunc()());
The Window
,谁调用这个函数this就指向谁,object.getNameFunc()()
先执行object.getNameFunc()
完这个后,再执行后面的函数,这时候this指向windowMy Object
,闭包就是能够读取其他函数内部变量的函数
,闭包最大一个特点就是能够保存变量,第二种写法实际上就是个闭包,that指向object,在object.getNameFunc()
执行完后,that还是保存着对object的引用,所以 第二个输出My Object
仅是个人理解哈~