पर बाद में परिवर्तन पर झूठा लौटाता है जब एक प्रोटोटाइप फ़ंक्शन पर प्रोटोटाइप सेट किया जाता है, तो instanceof
ऑपरेटर केवल true
लौटाता है जब तक कि प्रोटोटाइप बदल नहीं जाता है। क्यूं कर?उदाहरण ऑपरेटर विरासत श्रृंखला
function SomeConstructorFunction() {
}
function extendAndInstantiate(constructorFn) {
constructorFn.prototype = {}; //Can be any prototype
return new constructorFn();
}
var child1 = extendAndInstantiate(SomeConstructorFunction);
console.log(child1 instanceof SomeConstructorFunction); //true
var child2 = extendAndInstantiate(SomeConstructorFunction);
console.log(child1 instanceof SomeConstructorFunction); //false
console.log(child2 instanceof SomeConstructorFunction); //true
प्रोटोटाइप विरासत का महान स्पष्टीकरण। मुझे लगता है कि ओपी का भ्रम 'constructorFn.prototype = {} में निहित है; // कोई प्रोटोटाइप हो सकता है। वह उम्मीद कर रहा है कि प्रोटोटाइप को उसी ** मान ** पर सेट करने के परिणामस्वरूप 'exampleof' सत्य होगा, इसके बजाए, उन्हें उसी ** संदर्भ ** पर सेट किया जाना चाहिए। – MattDiamant
@MattDiamant - मैं सहमत हूं। मुझे नहीं पता कि ओपी 'विस्तार और इंस्टेंटिएट' का उपयोग करके पूरा करने का प्रयास कर रहा है, लेकिन मेरा मानना है कि यह निम्नलिखित प्रश्न में मेरे अपने 'तत्काल' समारोह की तरह थोड़ा सा है: http://stackoverflow.com/q/11490606/783743 –
अच्छी व्याख्या । सबसे महत्वपूर्ण बात यह है कि, मैं इस तथ्य को याद कर रहा था कि '{}' प्रोटोटाइप को 'ऑब्जेक्ट' में प्रभावी रूप से 'कुछ कॉन्स्ट्रक्टर फंक्शन' के प्रकार को बदलता है। 'कुछ कन्स्ट्रक्टर फंक्शनक्शन। कन्स्ट्रक्टर' 'कार्य ऑब्जेक्ट ...' है। – Stephen