В JavaScript, наследование массива через прототипы может быть достигнуто несколькими способами. Один из наиболее распространенных подходов - создание нового объекта-наследника от прототипа Array и переопределение его методов.
Вот пример, демонстрирующий этот подход:
// Создаем новый объект-наследник от прототипа Array function CustomArray() { // вызываем конструктор родительского класса через функцию apply() Array.apply(this, arguments); } // Устанавливаем прототип нового объекта равным прототипу Array CustomArray.prototype = Object.create(Array.prototype); // Добавляем методы и свойства к прототипу нового объекта CustomArray.prototype.customMethod = function() { console.log("This is a custom method."); }; // Создаем экземпляр наследника массива var arr = new CustomArray(1, 2, 3); console.log(arr); // [1, 2, 3] console.log(arr.length); // 3 arr.push(4); console.log(arr); // [1, 2, 3, 4] arr.customMethod(); // This is a custom method.
В этом примере мы создали новый объект CustomArray
, наследуя его от прототипа Array
при помощи Object.create()
. Затем мы добавляем необходимые методы или свойства к прототипу CustomArray
, в данном случае customMethod()
. Конструктор CustomArray
также вызывает конструктор родительского класса Array
при помощи apply()
, чтобы установить правильное значение this
.
Теперь объект arr
является массивом, но также имеет все добавленные нами методы и свойства. Мы можем использовать обычные операции массива, такие как push()
, а также вызывать наш метод customMethod()
.