在父元素上调用函数会在此处使'super'关键字出现意外

时间:2016-04-17 21:10:25

标签: javascript ecmascript-6 babeljs

我有一个典型的调用层次结构

class A
{
   mirm(){
     //stuff here
   }
}

class B extends A
{
   constructor(){
     //obtain a promise
     promise().then(this.setUp)
   }

   setUp(){
    super.mirm();
   }
}

承诺可能会对范围做些什么吗?我实际上希望你能够从this.mirm()函数中执行类似setUp的操作,因为它应该遵循原型链。是什么赋予了?我正在与babel进行编译,并将es2015作为目标。

1 个答案:

答案 0 :(得分:3)

当调用它时,传递this.setUp将当前上下文对象从函数引用中分离出来,因此this方法中的super对于查看位置感到困惑

考虑换行包装

// arrow function preserves context
foo.then(() => this.setUp());
// OR
// binding it to explicitly give context
foo.then(this.setUp.bind(this));