मैं 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
तीसरे तरीके से मैं आंतरिक रूप से ऐरे ऑब्जेक्ट को ऐरे ऑब्जेक्ट का विस्तार करना चाहता हूं। ऐसा कैसे करें ताकि "पुश एक फ़ंक्शन नहीं है" और "अपरिभाषित" न हो?
यहां मैं चौथा रास्ता जोड़ता हूं।
//------------- 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 के रूप में करने से बचें। मैं एक ही स्थान पर सभी टुकड़ों के साथ एक कॉम्पैक्ट परिभाषित कक्षा चाहता था। लेकिन मुझे लगता है कि मैं इसे अन्यथा नहीं कर सकता।
आप सरणी के लिए एक विधि जोड़ देते हैं तो आप सरणियों – SpacedMonkey
आप कॉफी स्क्रिप्ट में देखा है पर foreach() टूट जाएगा? मैं एक उदाहरण – SMathew
के साथ अपना उत्तर अपडेट करूंगा, मैं पहले उदाहरण में Array.prototype के लिए कोई विधि नहीं जोड़ूंगा। यह एक परीक्षण था। मैं एक कक्षा तैयार करूंगा जो ऐरे ऑब्जेक्ट का विस्तार करेगी। उदाहरण के लिए जेएसएरे। जेएसएरे ऑब्जेक्ट्स Arrays होंगे लेकिन अधिक सुविधाओं के साथ। – demosthenes