Способы расширения объекта Array в javascript
я пытаюсь расширить объект Array в JavaScript с помощью некоторых удобных для пользователя методов, таких как Array.Add () вместо Array.push () и т. д.
Я реализую 3 способа сделать это. К сожалению, третий способ не работает, и я хочу спросить, почему? и как это сделать работает.
//------------- 1st way
Array.prototype.Add=function(element){
this.push(element);
};
var list1 = new Array();
list1.Add("Hello world");
alert(list1[0]);
//------------- 2nd way
function Array2 () {
//some other properties and methods
};
Array2.prototype = new Array;
Array2.prototype.Add = function(element){
this.push(element);
};
var list2 = new Array2;
list2.Add(123);
alert(list2[0]);
//------------- 3rd way
function Array3 () {
this.prototype = new Array;
this.Add = function(element){
this.push(element);
};
};
var list3 = new Array3;
list3.Add(456); //push is not a function
alert(list3[0]); // undefined
3-м способом я хочу расширить объект Array внутри класса Array3. Как это сделать, чтобы не получать "push - это не функция"? и & quot; неопределенный & quot ;?
Здесь я добавляю 4-й способ.
//------------- 4th way
function Array4 () {
//some other properties and methods
this.Add = function(element){
this.push(element);
};
};
Array4.prototype = new Array();
var list4 = new Array4();
list4.Add(789);
alert(list4[0]);
Здесь я снова должен использовать прототип. Я надеялся избежать использования дополнительных строк вне конструктора класса как Array4.prototype. Я хотел иметь компактный определенный класс со всеми частями в одном месте. Но я думаю, что не могу сделать это иначе.