ES6 多重继承
ES6 multiple inheritance?
有人可以解释一下以下有效ES6代码的含义吗?
'use strict';
class first {
constructor() {
}
}
class second {
constructor() {
}
}
class third extends (first, second) {
constructor() {
super();
}
}
据我所知,JavaScript 中没有多重继承,但示例中所示的语法不会引发任何错误(在 Node.js 4.3.0 中(,并且它有效,... -我试图理解的内容如何,或者它在那里到底做了什么......
另外,我注意到如果我注释掉super()
调用,那么代码就会开始抛出错误ReferenceError: this is not defined
。
这只是逗号运算符的一个令人困惑的情况。
(1, 2) // 2
(1, 2, 3) // 3
(first, second) // second
它不会抛出错误,因为它是有效的语法,但它在你期望的意义上也不起作用。 third
只会继承second
.
我们可以通过编译为 ES5 语法来验证是否是这种情况,以检查它是否不会影响类定义。
var third = (function (_ref) {
_inherits(third, _ref);
function third() {
_classCallCheck(this, third);
_get(Object.getPrototypeOf(third.prototype), 'constructor', this).call(this);
}
return third;
})((first, second));
评估(first, second)
的结果作为_ref
传入,然后从中third
_inherits
。
相关文章:
- Javascript多重继承模式
- AngularJS 1.X ES6继承问题
- 多重继承或访问对象外部的属性和方法
- ES6 多重继承
- 在Javascript中进行多重继承的可行方法
- Javascript 中的静态变量继承 (ES6)
- JavaScript-特殊的多重继承
- 从非类继承ES6/TS类
- 带有原型链的Javascript中的多重继承
- JavaScript中的多重继承
- 在javascript中多重继承是可能的吗?
- Javascript多重继承
- 多重继承问题
- 在Javascript中实现多重继承
- javascript是否像c++一样支持多重继承?
- 聚合物多重继承/组合
- 如何在Javascript中测试多重继承
- 用于对象浸润的漂亮JavaScript模式(模拟多重继承)
- 多重继承 - JavaScript hasOwnProperty
- 多重继承和连接继承在Javascript中是如何工作的