Js代码
var name = "The Window";
var object = {
name : "My Object",
getNameFunc : function(){
return function(){
return this.name;
};
}
};
alert(object.getNameFunc()()); //The Window
...全文
1774打赏收藏
谁来普及下闭包?
Js代码 var name = "The Window"; var object = { name : "My Object", getNameFunc : function(){ return function(){ return this.name; }; } }; alert(object.getNameFunc()()); //The Window
这不是闭包的问题,是this环境的问题
代码中每个 this 对应的是离它最近的那一层 function
var name = "The Window";
var object = {
name : "My Object",
getNameFunc : function(){ //这个 function 是 object 对象的方法
return function(){ //这个 function 不是 object 对象的方法
return this.name; //这里的 this 对应的是上一行的 function,所以这里的 this 指向的是window对象,而不是object对象
};
}
};