मैं इन दिनों es5 पढ़ रहा हूं और पाता हूं कि [[विन्यास योग्य] कुछ अंतर्निहित वैश्विक गुणों की विशेषता सत्य पर सेट है जिसका अर्थ है कि हम इन गुणों को हटा सकते हैं।
उदाहरण के लिए:
Array.prototype ऑब्जेक्ट की ज्वाइन विधि में विशेषताएँ हैं
{[[Writable]]:true, [[Enumerable]]: false, [[Configurable]]: true}
तो हम आसानी से Array के लिए जुड़ने की विधि को हटा सकते हैं जैसे:
delete Array.prototype.join;
alert([1,2,3].join);
चेतावनी undefined
मेरे क्रोमियम 17, फ़ायरफ़ॉक्स 9, यानी 10, यहां तक कि ie6 में प्रदर्शित होगी ;
Chrome 15 और सफारी में 5.1.1 [[विन्यास योग्य]] विशेषता सत्य पर सेट है और परिणाम को हटाना भी सही है लेकिन अंतिम परिणाम अभी भी है function(){[native code]}
। ऐसा लगता है कि यह एक बग है और क्रोमियम इसे ठीक करता है।
मैंने पहले ऐसा नहीं देखा। मेरी राय में, उपयोगकर्ता के कोड में अंतर्निहित कार्यों को हटाना खतरनाक है, और दूसरों के साथ काम करते समय इतने सारे कीड़े लाएगा। तो ECMAScript ने यह निर्णय क्यों लिया?