TypeError:_this2.function不是函数

时间:2017-09-06 11:47:19

标签: javascript ecmascript-6 es6-class es6-modules

我有一个很少上课的小型图书馆。在其中一个类中,我使用其他类的方法,因此我实例化它们,并在代码中使用它。

我使用的一些类使用this关键字的参考方法。

示例:

// index.js
import Class1 from './class1'
import Class2 from './class2'
import Class3 from './class3'

export {
   Class1,
   Class2,
   Class3
}

// class1.js
export default Class1 {
   func1() {
      return 'something';
   }

  func2() {
      return this.func1() + 'else';
  }

}

// class2.js
export default Class2 {
   func1() {
      return 'something';
   }

  func2() {
      return this.func1() + 'else again';
  }

}

// class3.js

import {Class1, Class2} from './index';
const c1 = new Class1();
const c2 = new Class2();

export default Class3 {
   funcNotWorking(){
       return c1.func2() + c2.func3() + 'this does not work'
   }

}

我只是在导入它时在测试中使用它:

// test.js
const c3 = require('library.js').Class3

// test stuff calling:
c3.funcNotWorking()

我正在使用webpack和babel loader编译它。这个配置似乎可以正常编译,其他一切都可以工作,但是......

我读过人们似乎对React有这个问题,但这只是Es6。有人能指出我如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

这种情况在我的代码中迷失了。

我在有问题的代码中使用递归,映射和箭头函数。 Babel编译版本_this2没有遵循上下文。

我提取了一些方法,在类构造函数中分配它们,并在类中使用提取的方法并正确编译。