使用箭头功能时将其定义为未定义

时间:2016-05-12 09:18:14

标签: javascript typescript webpack arrow-functions

我正在使用箭头功能,我正在使用Chrome和Firefox Dev Tool进行调试。我得到了,this未定义,即使代码仍然有效。

我的假设是,它与源地图有关。

以下是我用来构建代码的工具:

  • webpack(devtool:eval)
  • babel-loader(es5预设)
  • 打字稿装载机

2 个答案:

答案 0 :(得分:15)

问题是chrome调试器认为源代码中的this是指符文时间this,但是打字稿源代码中的箭头函数中的this实际上是转换为_this,因此它会向您显示错误的对象。

这就是为什么它只是调试器中的问题而且代码仍能正常工作。当我需要调试这是一个问题的东西时,我只是将它复制到控制台并在前面添加一个下划线。

答案 1 :(得分:1)

这可能是一个问题,因为JS箭头函数没有thisthis的值可能是根据Arrow functions revisited和{{3 }}