闭包给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);
}
}
}
浙公网安备 33010602011771号