Ways to extend Array object in javascript
i try to extend Array object in javascript with some user friendly methods like Array.Add() instead Array.push() etc. i implement 3 ways to do this. unfortunetly the 3rd way is not working and i want to ask why? and how to do it work.
//------------- 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
in 3rd way i want to extend the Array object internally Array3 class. How to do this so not to get «push is not a function» and «undefined»? Here i add a 4th way.
//------------- 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]);
Here again i have to use prototype. I hoped to avoid to use extra lines outside class constructor as Array4.prototype. I wanted to have a compact defined class with all pieces in one place. But i think i cant do it otherwise.