में सरणी की लंबाई को वापस करने के लिए फ़ंक्शन.लेथेंथ को ओवरराइड करने के लिए कैसे करें I जावास्क्रिप्ट में किसी ऑब्जेक्ट की लम्बाई प्रॉपर्टी को ओवरराइड करने का तरीका ढूंढ रहा हूं।सख्त मोड
मैं वर्तमान में
यह बुनियादी संरचना है (मूल कोड संदर्भ में अधिक पठनीय होने के लिए प्रयोग किया जाता है) parent.properties.objects सरणी पर एक आवरण है:
(माता-पिता चर नाम स्थान में परिभाषित किया गया और intialized है)
var parent = function() {
this.properties = {
objects: [];
};
};
आवरण
(function() {
"use strict";
objects = function() {
कोई तर्क पारित हो जाता है, तो यह मान
if (arguments.length === 0) {
var _objects = parent.properties.objects;
return _objects;
संशोधित मिलता है या फिल्टर
} else if (arguments.length > 0) {
...
}
};
इस (नहीं [प्रोटोटाइप]) चर एक object.prototype बनाता वस्तुओं और विधि लंबाई (कहते हैं)
objects.prototype.length = function() {
var length = parent.properties.objects.length;
return length;
}
त्रुटि
012,objects.prototype.__proto__.length = function() {
var length = parent.properties.objects.length;
return length;
}
parent.objects = objects;
})();
क्या आप इस तरह की त्रुटि के बारे में अधिक विशिष्ट हो सकते हैं? – guypursey
मैंने इसे ऑब्जेक्ट्स के साथ हैक किया। लम्बाई() (जावास्क्रिप्ट केस संवेदनशील है)। मैं इसे एक आरामदायक एपीआई लिखने के लिए कर रहा हूं, और हर संपत्ति के लिए एक समारोह नहीं है/ऑपरेशन सेट करें। लेकिन हर संपत्ति के लिए एक समारोह। ऑब्जेक्ट्स कॉल करना अच्छा होगा। लम्बाई(), लेकिन ऑब्जेक्ट्स। लम्बाई() ऑब्जेक्ट्स() लम्बाई()। त्रुटि किसी प्रकार का __proto__ नहीं मिला ब्ला ब्ला ब्लाह। ईसीएमए 6 के लिए इंतजार करना होगा। –
आपकी आखिरी पंक्ति 'parent.object = ऑब्जेक्ट' क्या है? 'parent' एक फ़ंक्शन है, और मुझे 'ऑब्जेक्ट' वैरिएबल कहीं भी घोषित नहीं किया गया है – Bergi