Javascript 对父元素give';调用函数;超级';这里出现了意外的关键字

Javascript 对父元素give';调用函数;超级';这里出现了意外的关键字,javascript,ecmascript-6,babeljs,Javascript,Ecmascript 6,Babeljs,我有一个典型的呼叫层次结构 class A { mirm(){ //stuff here } } class B extends A { constructor(){ //obtain a promise promise().then(this.setUp) } setUp(){ super.mirm(); } } 可能是承诺对范围做了些什么吗?实际上,我希望您能够从setUp函数执行类似this.mirm()的操作

我有一个典型的呼叫层次结构

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

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

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

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

传递
this。当调用当前上下文对象时,setUp
会将其从函数引用中分离出来,因此
super
方法中的
this
不知道在哪里查找

考虑将其包装起来

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

传递
this.setUp
会在调用当前上下文对象时将其从函数引用中分离出来,因此
super
方法中的
this
不知道在哪里查找

考虑将其包装起来

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

是的,箭头函数帮了我的忙,我读到它们有词法范围,然后回来回答我的问题。不过我不知道第二种方法,谢谢。
super
在未绑定函数中运行良好,它正确地查找了
mirm
。问题在于它调用错误的
this
,所以
mirm
本身会被混淆。@Bergi是的,我会改写它是的,箭头函数帮我做了这个把戏,我读到它们有词法范围,我刚回来回答我的问题。不过我不知道第二种方法,谢谢。
super
在未绑定函数中运行良好,它正确地查找了
mirm
。问题只是它在错误的
this
上调用了它,所以
mirm
本身将被混淆。@Bergi是的,无论如何我会重写它。-)我没有返回承诺,但是不在构造函数内执行任何任务的逻辑是有意义的。我现在已经更改了它,但是问题仍然存在,所以我的问题仍然有效,谢谢。除非你有更好的设计模式?反正是你。-)我没有回复承诺,但是不在构造函数中执行任何任务的逻辑是有意义的。我现在已经更改了它,但是问题仍然存在,所以我的问题仍然有效,谢谢。除非你有更好的设计模式?