当前位置: 首页 > 面试题库 >

使用Babel扩展ES6中的内置本机

夏朝
2023-03-14
问题内容

我正在使用Babel通过内置的本机Array扩展我的课程

class NewArray extends Array {
  first() {
    return this[0];
  }
}

var a = new NewArray(1, 2, 3);
console.log(a.length); // 3
console.log(a); // [ 1, 2, 3 ]
console.log(a.first()); // trigger error

在a.first()中,出现此错误:

console.log(a.first());
              ^

TypeError: a.first is not a function

我是否应该做更多的事情来扩展内置的本机?

谢谢!


问题答案:

Babel不支持扩展本机类。它已在5.2.17版本中删除

它不可能被添加,因为它不是可以模拟的功能。我们将不得不等待浏览器的本机支持(有些人已经在实验模式下支持它)。这也意味着它当前在不同的浏览器中的行为会有所不同。



 类似资料:
  • Extending built-in models(扩展内置 model) 使用JSON 扩展 使用 js 扩展 Model 定义 使用 mixin 建立自定义模型 使用JSON扩展模型 使用 模型生成器 创建一个 Model, 你需要选择一个 model 然后继承它,你的模型会继承 它,以及获得他的方法和属性. 案例,扩展了 PersistedModel: /common/models/mode

  • 问题 你想要扩展一个类来增加新的函数或者替换旧的。 解决方案 使用 :: 把你的新函数分配到对象或者类的原型中。 String::capitalize = () -> (this.split(/\s+/).map (word) -> word[0].toUpperCase() + word[1..-1].toLowerCase()).join ' ' "foo bar baz".ca

  • 为什么一定要使用 ...path 才能正确的运行,在上面代码中测试的结果是一样的,而下面则一定要用 ... ?否则就会出现如图2所示的结果 这段代码是 解决 (给定两个整数 n 和 k,返回范围 [1,n] 中所有可能的 k 个数的组合。) 这个问题的 ,用的回溯

  • 本文向大家介绍ES6数组的扩展详解,包括了ES6数组的扩展详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了ES6数组的扩展。分享给大家供大家参考,具体如下: 1. Array.from() Array.from()将类数组(array-like)对象与可遍历的对象转化为数组并返回。 下面是一个类数组 ES5我们可能都会这样写: ES6可以把一个类数组转化为一个真正的数组 实际应用中,常

  • 目前默认生效的的扩展模块是:lookout-ext-jvm,lookout-ext-os(from v1.5.0)。 JVM 线程 metric name metric tags specification jvm.threads.totalStarted — jvm.threads.active — jvm.threads.peak — jvm.threads.daemon — JVM 类加载

  • 问题内容: 是否可以在ES6中扩展类而不用调用方法来调用父类? 编辑:这个问题可能会引起误解。 这是我们必须打电话的标准,还是我遗漏了一些东西? 例如: 当我不调用派生类时,我遇到了范围问题-> 我正在v2.3.0中使用iojs –harmony运行它 问题答案: ES2015(ES6)类的规则基本上可以归结为: 在子类构造函数中,只有在被调用之前才能使用。 ES6类构造函数必须是子类,否则必须调