वास्तव में यह एक अच्छा कारण नहीं है कि इसे क्यों मना नहीं किया गया था, यह आसानी से हो सकता था अगर भाषा विकसित होने पर इसे लागू किया गया था।
लेकिन यह बिना किसी त्रुटि के लागू क्यों किया गया था? क्योंकि यह अच्छी तरह से दर्पण करता है जब आप एक आदिम पर किसी संपत्ति का उपयोग करते हैं तो यह होता है: यह निश्चित रूप से किसी ऑब्जेक्ट पर डाला जाता है। इससे कोई फ़र्क नहीं पड़ता कि आप असाइनमेंट के लिए या पुनर्प्राप्ति के लिए प्रॉपर्टी संदर्भ का उपयोग करते हैं, इसमें कोई ऑब्जेक्ट शामिल है। असाइनमेंट सामान्य रूप से काम करेगा, भले ही coerced ऑब्जेक्ट तुरंत बाद फेंक दिया जाए।
हम यह भी देख सकते हैं कि जब हम अपने प्रोटोटाइप पर उस वस्तु के लिए एक विरासत एक्सेसर प्रदान करते हैं:
"use strict";
Object.defineProperty(Number.prototype, "f", {
set: function(value) {
console.log(typeof this+" "+this+" got "+value+" assigned to .f");
},
get: function() {
console.log(typeof this+" "+this+"'s .f property was accessed");
return function() {
console.log("method called on "+typeof this+" "+this);
};
},
configurable: true
});
(3).f = "test value";
(3).f();
तो अपने सवाल यह है कि क्यों यह 'वायुसेना पर एक अपवाद फेंक नहीं है = ... 'लाइन? – Bergi
हां, उदाहरण के लिए। या अधिक सामान्य शब्दों में, इसकी अनुमति क्यों है। –