कभी कभी वहाँ एक जे एस framework या पुस्तकालय है कि सोचता है कि यह एक बहुत बुद्धिमान विचार है Object
या Array
के प्रोटोटाइप के लिए कुछ शुद्ध नई सुविधाओं को जोड़ने के लिए है। मुझे अभी और कोई उदाहरण नहीं मिल रहा है, लेकिन मुझे याद है कि मुझे इससे पहले समस्याएं थीं। बेशक, ऐसा करने से अच्छे पुराने for(...in...)
पाश टूट जाता है, क्योंकि अचानक उन गुणों अब भी enumerated हैं। इसके आस-पास पहुंचने के लिए आपको पहुंचने से पहले .hasOwnProperty()
के साथ प्रत्येक समृद्ध संपत्ति की जांच करनी होगी। मजबूत कोड लिखने की कोशिश करते समय बोझिल कौन सा है।क्या आप जावास्क्रिप्ट में कोई ऑब्जेक्ट बना सकते हैं जो ऑब्जेक्ट से प्राप्त नहीं होता है?
तो मैं सोच रहा गया - वहाँ कुछ रास्ता है कि मैं अपने ही वस्तुओं तो कर सकता है, कि वे Object
से विरासत में नहीं आता है? प्रारंभ में .prototype
के साथ खेलना कोई परिणाम नहीं मिला। शायद इसके लिए कुछ चाल है? या सबकुछ हमेशा Object
से प्राप्त होगा और इसके बारे में कुछ भी नहीं है?
जोड़ा गया: मुझे लगता है कि मुझे यह ध्यान रखना चाहिए था कि मैं इसे ब्राउज़र में क्लाइंट-स्क्रिप्ट के लिए चाहता हूं, और संगतता में आईई 6, या कम से कम आईई 7 शामिल होना चाहिए। अन्य ब्राउज़र संस्करण की आवश्यकताएं अधिक उदार हैं, हालांकि ज़्यादा बेहतर है। (हाँ, दुर्भाग्य से, कॉर्पोरेट जगत अभी भी IE-दुनिया में रहती है ...)
* खराब * पुराना '(... में ...)' लूप निश्चित रूप से –
@RobAgar - ऐसा क्यों? असल में, मैं 'लिखने के लिए थक गया हूं' (var i, l = myArray.length; i
आमतौर पर प्रोटोटाइप को बदलने वाले ढांचे, तत्वों के माध्यम से लूप करने का एक तरीका भी प्रदान करते हैं। मुट्टूल में, 'myObj.each()' काम करेगा .. '' "foo", "bar"]। प्रत्येक() ' – pleasedontbelong