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是的,无论如何我会重写它。-)我没有返回承诺,但是不在构造函数内执行任何任务的逻辑是有意义的。我现在已经更改了它,但是问题仍然存在,所以我的问题仍然有效,谢谢。除非你有更好的设计模式?反正是你。-)我没有回复承诺,但是不在构造函数中执行任何任务的逻辑是有意义的。我现在已经更改了它,但是问题仍然存在,所以我的问题仍然有效,谢谢。除非你有更好的设计模式?