Aurelia transpiler:"这个"是" null"

时间:2016-02-27 19:26:30

标签: aurelia

我在Aurelia应用程序中有以下代码:

import {digit} from "../util/random" // generates a random digit [0,9]

export class UnitedStates {

  zipCode() {
    return ""+digit(5);
  };

  zipPlus4() {
    return this.zipCode()+"-"+digit(4);
  };

  ...

}

TypeError: Cannot read property 'zipCode' of null的正文上获取错误zipPlus4。在开发人员工具中进行检查后发现thisnull

为什么this null,我该如何解决?

1 个答案:

答案 0 :(得分:2)

这是转换器的问题。回想一下,箭头函数表示法维护词汇this(或更read here)。因此,当Babel和其他转换器进入新范围时,它们会维护一个本地变量,以便可以从任何子范围访问它。通常,此变量为_this

有时,像DevTools这样的调试器很难理解源图,并报告了一个空this。事实证明,这只是在检查代码时;运行代码时,它可以正常工作。

那么当报告为空时,如何检查this的值?通常从控制台检查_this。这将为您提供正在使用的真实this值。