这在对象方法的内部函数中

时间:2015-11-04 08:10:23

标签: javascript scope this

我知道有ES6箭头功能可以解决这个问题,但这不是问题。我不知道为什么这不起作用?我想我听说某个地方语言设计是个错误。我想知道为什么这不起作用的潜在机制或一些有用的链接。

var test = {
  firstname: 'David',
  fn: function() {

     return ['one', 'two', 'tree'].map(function() { 
        this.firstname;  // why is this undefined?

    })
  }
}
console.log(test.fn());

1 个答案:

答案 0 :(得分:2)

Array.prototype.map 函数中引用窗口对象。要解决此问题,您可以像下面这样绑定它:

grails.plugin.springsecurity.securityConfigType = "InterceptUrlMap"

Fiddlehere是关于 Function.prototype.bind 方法的链接

我希望它能帮到你