2012-12-19 9 views
11

तो अगर आप इस बेला http://jsfiddle.net/r0k3t/z8f2N/1/ को देखो आपको लगता है किऑब्जेक्ट.प्रोटोटाइप === क्यों myNewObj.prototype नहीं है?

var me = { fName: "ken", lName: "n" }; 

console.log(Object.prototype === Object.getPrototypeOf(me)); 

रिटर्न सच देख सकते हैं। क्यों देखते हुए नहीं

console.log(Object.prototype === me.prototype); 

है कि मैंने किसी चीज़ का शाब्दिक यकीन है कि पर्याप्त रूप में "मैं" वस्तु बनाया यह प्रोटोटाइप Object.prototype होना चाहिए और पहली पंक्ति है कि पुष्टि करने के लिए प्रतीत होता है।

उत्तर

18
Object.prototype === me.constructor.prototype; // true 

मैं तुम्हें अब लगता है कि जाने कैसे getPrototypeOf काम करता है :-)

इसके अलावा, गैर मानक अभी तक लेकिन-काम करता है-लगभग हर जगह समाधान (धन्यवाद JANDY):

Object.prototype === me.__proto__; // true 
+5

+1 - आपके उत्तर में एक बड़ा जोड़ा होगा: 'console.log (Object.prototype === me .__ proto __); * * (जिसे ईएस 6 * – jAndy

+0

ओ माननिट द्वारा मानकीकृत किया जाएगा! मुझे वह भी पता था (इसे अच्छी तरह से देखा गया)। काश मैं पहली बार सबकुछ अवशोषित कर सकता हूं और इसे सब याद रख सकता हूं। – Kenn

+0

यद्यपि यहुदा काट्ज़ कहते हैं "ऑब्जेक्ट लिटलल्स" अनुभाग के तहत उनका ब्लॉग (http://yehudakatz.com/2011/08/12/understanding-prototypes-in-javascript/) - "ऑब्जेक्ट अक्षर हमेशा ऑब्जेक्ट में स्थित किसी ऑब्जेक्ट पर नव निर्मित ऑब्जेक्ट का प्रोटोटाइप सेट करते हैं .prototype ", फिर छवि को देखो। क्या आप भ्रमित होने के लिए मुझे दोषी ठहरा सकते हैं? Yeesh! – Kenn

संबंधित मुद्दे