【发布时间】:2016-05-25 21:06:20
【问题描述】:
有人可以解释以下有效 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。
【问题讨论】:
-
@Tushar 那个问题是关于 Babel 的,这个问题是关于 ES6 的。
-
(first, second)是逗号运算符,计算结果为second。first被扔掉了。 -
这个问题与 Babel 无关。 Babel 只是一个工具/库,可以在浏览器不支持的情况下尽早使用 ES6。
-
@torazaburo 如果我们删除括号并只有
first, second,Node.js 将拒绝此类代码,这纯粹是 Babel 语法。 -
任何 ES6 处理器都会拒绝没有括号的代码。至于你最初的问题,只要看看 Babel 生成的 ES5 代码就应该清楚了。
标签: javascript node.js ecmascript-6