在单独的范围内调用超级方法

时间:2015-09-22 07:11:01

标签: javascript node.js ecmascript-6

我正在尝试从另一个范围内调用'use strict'; class One { test() { console.log('test'); } } class Two extends One { hi() { super.test(); } hello() { var msg = 'test'; return new Promise(function(resolve, reject) { console.log(msg); super.test(); }); } } var two = new Two(); two.hi(); two.hello(); 方法,但这似乎不起作用。

bar

1 个答案:

答案 0 :(得分:3)

显然,在巴贝尔,它开箱即用。但是在节点中,似乎在该匿名函数中,this不再绑定到two对象,而super则不可用。您可以使用胖箭头将this绑定到匿名函数的范围:

return new Promise((resolve, reject) => {
    console.log('Message: ', msg);
    super.test();
});

如果您不熟悉胖箭和/或this范围的概念,这是一个很好的解读: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions