javascript - 使用自定义方法扩展数组
问题描述
我想扩展一个Array
以便向它添加自定义方法。
这是我这样做的尝试:
class DataArray extends Array {
constructor() {
super();
}
add(item) {
this.push(item);
}
}
const dataArray = new DataArray();
dataArray.add(1);
但给出了错误Uncaught TypeError: dataArray.add is not a function
该错误仅在我使用 Babel 或 Typescript 编译代码时发生。
解决方案
似乎它不支持速记方法定义,请尝试使用箭头函数赋值:
class DataArray extends Array {
constructor() {
super();
}
add = (item) => {
this.push(item);
}
}
const dataArray = new DataArray();
dataArray.add(1);
console.log(dataArray);
你的版本仍然很好,它可能是这个 REPL 中的解释器版本,如果你在 jsbin 中尝试你自己的例子,它工作正常
推荐阅读
- jenkins - 如何将变量传递到在 Jenkins 管道参数中执行的 Groovy 脚本中?
- php - Laravel 本地化在 api.php 路由中不起作用
- javascript - reactjs中如何根据类别字段对数据进行分组?
- windows - 来自 reg 文件的 Wix 自动化
- vb.net - 循环内的变量声明不会重置它的值
- python - Python - 根据在组中出现多次来定义变量
- python - pyperclip 是否有最多字符?
- java - 经典的 asp 和 webservices - 如何使它与 java 一起工作?
- laravel - 在 v-for laravel-vue 中显示
- node.js - 如何在mongodb查询中调用javascript函数