在深层互联网中我遇到了像class A extends B with C { ... }
这样的结构,我现在还没有链接,它就像扩展抽象类时类的宏。
这是标准的吗? (我用谷歌搜索,只找到现在已删除的旧 with
,chrome 内联控制台抛出错误)
最佳答案
这不是标准的。来自 Annex A.4 - Functions and Classes , 语法是
<i>ClassDeclaration</i><sub>[Yield, Default]</sub> :
<b>class</b> <i>BindingIdentifier</i><sub>[?Yield]</sub> <i>ClassTail</i><sub>[?Yield]</sub>
[+Default] <b>class</b> <i>ClassTail</i><sub>[?Yield]</sub>
<i>ClassExpression</i><sub>[Yield]</sub> :
<b>class</b> <i>BindingIdentifier</i><sub>[?Yield]opt</sub> <i>ClassTail</i><sub>[?Yield]</sub>
<i>ClassTail</i><sub>[Yield]</sub> :
<i>ClassHeritage</i><sub>[?Yield]opt</sub> <b>{</b> <i>ClassBody</i><sub>[?Yield]opt</sub> <b>}</b>
<i>ClassHeritage</i><sub>[Yield]</sub> :
<b>extends</b> <i>LeftHandSideExpression</i><sub>[?Yield]</sub>
所以 ClassTail 是包含可选的 extends something
和类主体的部分。 something
必须是 LeftHandSideExpression,其中没有任何 with
。
关于javascript - ES6 js "with"关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39336581/