在函数被作为某个对象的方法调用时,this等于这个对象。
但是匿名函数的this是window, 如果要修改匿名函数的this指向,可以使用这样的办法。
var name = 'window'
var person = {
name :'Alan',
sayName:function () {
return function () {
console.log(this.name)
}
}
}
person.sayName()() // window
如下所示,使用that变量
var name = 'window'
var person = {
name :'Alan',
sayName:function () {
var that = this
return function () {
console.log(that.name)
}
}
}
person.sayName()() // Alan