我用index.js创建了一个包,看起来像这样:
module.exports = class CoolArray extends Array {
printArray() {
console.log(this);
}
}
然后使用babel使用es2015语法编译代码。
将我的包链接到我的测试文件夹后,我可以导入和使用我的类,就像这样:
import CoolArray from 'package-name';
const coolArr = new CoolArray(1, 2, 3);
但是,我不能在coolArr
对象上使用任何类函数。
coolArr.printArray()
给出了错误TypeError: coolArr.printArray is not a function
。我做错了什么?
好了,我找到解决办法了。我的index.js文件现在看起来像这样:
module.exports = class AsyncArray extends Array {
constructor(...elements) {
super(...elements);
this.printArray = () => {
console.log(this);
}
}
}
这个链接应该跟着你找到完整的答案。
应该可以:
class CoolArray extends Array {
printArray() {
console.log(this);
}
}
module.exports = {
CoolArray,
};
那么它可以这样使用:
import { CoolArray } from 'package-name';
const coolArr = new CoolArray(1, 2, 3);
像这样重构我的index.js文件,使我能够使用类函数而不会出现任何错误:
module.exports = class AsyncArray extends Array {
constructor(...elements) {
super(...elements);
this.printArray = () => {
console.log(this);
}
}
}