javascript - ES6 js "with"关键字

标签 javascript syntax ecmascript-6

在深层互联网中我遇到了像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/

相关文章:

javascript - 在 ES6/Typescript 中使用 _(下划线)变量和箭头函数

javascript - 考虑到非类型化的 JavaScript 数组不是同质的,它们如何在内存中布局?

Objective-C 变量声明困惑

javascript - 带有 JavaScript 和构造函数的动态变量名称 : cloning an image with EaselJS dynamically to multiple canvases

javascript - 简单的网络应用程序适用于 Android,但不适用于 Safari

javascript - 这个 React 组件中发生了什么 ES6 魔法?

javascript - 为所有 child 绑定(bind)点击事件

javascript - 验证负数

javascript - iOS 获取过去的登录表单。

delphi - 如何以最优雅的方式将字符数组分配给字符串?