मैं निम्नलिखित कोड है:क्यों प्रोटोटाइप बदलना पहले बनाई गई वस्तुओं को प्रभावित नहीं करता है?
var A = function() {};
var a = new A();
var b = new A();
A.prototype.member1 = 10;
A.prototype = {}
var c = new A();
console.log(a.member1);
console.log(a.constructor === b.constructor);
console.log(a.constructor === c.constructor);
console.log('---------');
console.log(c.member1);
यह उत्पादन होता है:
10
true
false
---------
undefined
undefined
a
और b
के प्रोटोटाइप नहीं बदला है और c
एक नया एक था। क्या मैं सही हूं कि यह इस तथ्य के कारण हुआ था कि a.constructor
c.constructor
के बराबर नहीं है और उनमें से प्रत्येक के पास prototype
है? क्या कोई अन्य सर्क हैं जब दो वस्तुओं के निर्माता बराबर नहीं हो सकते हैं?
अतिरिक्त प्रश्न: दो undefined
स्ट्रिंग क्यों मुद्रित किए गए थे? (क्रोमियम)
क्या 'a1'' c' होना चाहिए? –
क्षमा करें, मेरी गलती। ठीक किया गया;) –
क्या आप क्रोम में हैं? यदि ऐसा है, तो 'console.log (अपरिभाषित)' दो चीज़ों को लॉग करेगा: लॉग 'अपरिभाषित' और लौटा 'अपरिभाषित'। – pimvdb