У меня проблемы с расширением массива JS. Это мои занятия:
// ArrayList.js
export default class ArrayList extends Array {
clear() {
this.splice(0, this.length);
}
}
// MyItem.js
export default class MyItem {
constructor() {
this._id = 0;
}
getID() {
return this._id;
}
setID(value) {
if (typeof value === 'number') {
this._id = value;
}
}
}
// Test.js
import ArrayList from './ArrayList';
import MyItem from './MyItem';
let list = new ArrayList();
let item1 = new MyItem();
item1.setID(1);
list.push(item1);
let item2 = new MyItem();
item2.setID(2);
list.push(item2);
Если я сейчас выполню:
list.forEach(function(item) {
console.log(item.getID());
});
Все работает отлично, но если я пытаюсь вызвать свой собственный метод, я сталкиваюсь с ошибками:
list.clear();
console.log(list.length);
Исключение составляет:
TypeError: list.clear is not a function
+++ ОБНОВЛЕНИЕ +++
Я использую тестовый скрипт с node.js:
node start.js
Это мой start.js:
require('babel-register')({
presets: [ 'env' ]
})
module.exports = require('./Test.js')
И затем каждый класс сохраняется в отдельном файле JS.