Насколько я знаю, мы можем поместить метод внутри массива следующим образом:
var someArray = [];
someArray.newFunction = function() {
alert("hello");}
Существуют ли какие-либо возможные способы (кроме приведенных выше) поместить методы внутри массивов?
Какую проблему ты пытаешься решить?
Функции — это просто объекты. Вы можете поместить их в массив так же, как вы помещаете в массив что-либо еще.
Указанный метод является методом массива, а не членом массива, т.е. он не включен в проиндексированное содержимое массива.
@Teemu на самом деле это то, что мне было интересно. Ожидая, что кто-то ответит именно на то, что вы прокомментировали. Спасибо.
В дополнение к прямому назначению (что вы делаете) вы можете использовать Object.assign
для назначения более одного свойства/метода определенному массиву.
Также возможно добавлять методы в массивы все (посредством наследования) через Array.prototype
. Вам следует избегать этого в библиотеках, но в вашем собственном коде приложения это может быть хорошо при надлежащем тестировании. Если вы это сделаете, важно сделать свойство неисчислимый, добавив его с помощью Object.defineProperty
:
Object.defineProperty(Array.prototype, "newMethod", {
writable: true,
configurable: true,
value() {
// ...code here...
}
});
arr.push( function(){} )
?