扩展原型,继承和超级

时间:2017-04-03 11:50:23

标签: javascript class inheritance ecmascript-6

考虑以下代码

Instant

Long中的const A = class { constructor(...args) { A.prototype.constructor.apply(this, args); } }; A.prototype.constructor = function(name) { this.name = name; }; A.prototype.print = function() { console.log(this.name); }; const B = class extends A {}; B.prototype.print = function() { super.print(); console.log('In B!'); }; 行抛出语法错误super.print()。为什么呢?

为什么我不能像任何其他语言一样称呼这个班级?这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

在JavaScript中,要调用基类'实现,你可以通过名称明确地称它,即:

B.prototype.print = function() {
    A.prototype.print.call(this);
    console.log('In B!');
};