Я думаю, вы можете просто использовать ES6 extends
, как и на любом другом языке OO.
Вот пример класса, который расширяет собственный массив и добавляет журналметод.Единственная проблема, связанная с этим, заключается в том, что вам придется использовать ключевое слово new
для создания нового массива.
class CustomArray extends Array {
log() {
console.log(this);
}
}
var customArrayInstance = new CustomArray();
customArrayInstance.push(1,2,3,4,5);
customArrayInstance.log();
// Creating an array using the array constructor
//
new CustomArray(200).fill(null).log()
То, что вы также можете сделать, это использовать Symbols
для расширения поведения собственного массива способом, отличным от ООП.По сути, вы будете расширять прототип собственного массива, не нарушая браузер.