【问题标题】:Babel can't properly extend Array? [duplicate]Babel 不能正确扩展 Array? [复制]
【发布时间】:2016-10-20 19:45:16
【问题描述】:

我正在尝试在原生 JS 中扩展数组。但不仅仅是修改原型。我想我会尝试使用新的class es2015 语法。

尝试原生(chrome 已经支持它 - 耶ヽ(´▽`)ノ),一切正常。切换到 Babel 以获得更好的支持,它停止工作。经过一番尝试,我发现新对象上没有可用的方法。测试代码:

class CustomList extends Array {
  constructor(...elms) {
    super(...elms);

    this.testprop = "test";
  }

  customMethod(a) {
    console.log(a, this);
  }
}

(test in babel)

【问题讨论】:

  • @unlucky13 好像我有点……不走运?感谢您的评论。好像就是这样。介意将其添加为 aswer 以便我可以接受吗?谢谢”

标签: javascript ecmascript-6 babeljs


【解决方案1】:

Babel.js 无法正确扩展内置类:

由于 ES5 中的限制(对于 es2015-classes 插件),无法正确继承 DateArrayDOM 等内置类。你可以在Object.setPrototypeOfReflect.construct的基础上尝试使用babel-plugin-transform-builtin-extend,但也有一定的局限性。

-- https://babeljs.io/docs/usage/caveats/#classes

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-16
    • 1970-01-01
    • 2021-02-07
    • 2021-04-30
    • 2020-10-16
    • 2016-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多