闭包给this带来的问题

var  name = "window";

var person = {

name:"Amos",

age:22,

say:function(){

return function(){

alert(this.name);

}

}

}

// 当完成person.say()。之后,这个函数函数就调用结束了,在这个函数调用结束之前

//this是指向Person的,但是在调用匿名函数的时候 this 就指向window了.

person.say()(); //window

解决方法:

var person = {

name:"Amos",

age:22,

say:function(){

var that  = this;

return function(){

alert(that.name);

}

}

 

}

 

 

posted on 2013-07-02 14:53  菜鸟半只  阅读(207)  评论(0)    收藏  举报

导航