JavaScript中匿名函数this指向问题
Posted 橱窗外的小孩
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript中匿名函数this指向问题相关的知识,希望对你有一定的参考价值。
this对象是在运行时基于函数执行环境绑定的,在全局函数中,this=window,在函数被作为某个对象的方法调用时,this等于这个对象。
但是匿名函数的执行环境是全局性的,所以匿名函数的this指向是window
var name = ‘window‘
var person = {
name :‘Alan‘,
sayName:function () {
return function () {
console.log(this.name)
}
}
}
person.sayName()() // window
这里sayName方法return了一个匿名函数,这个匿名函数中this指向window
解决方法还是有的,我们可以把外部作用域的this传递给匿名函数
var name = ‘window‘
var person = {
name :‘Alan‘,
sayName:function () {
var that = this
return function () {
console.log(that.name)
}
}
}
person.sayName()() // Alan
以上是关于JavaScript中匿名函数this指向问题的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript 进阶教程函数的定义 调用 及 this指向问题