2014-09-14 7 views
5

मैंने अभी कोड के इस स्निपेट को लिखा है।जावास्क्रिप्ट में फ़ंक्शन ऑब्जेक्ट का प्रोटोटाइप क्या है?

function Point(x,y){ 
     this.x = x; 
     this.y = y; 
    } 
    var myPoint = new Point(4,5); 
    console.log(myPoint.__proto__ === Point.prototype); 
    console.log(Point.__proto__ === Function.prototype); 
    console.log(Function.__proto__ === Object.prototype); 

पहले दो भाव सच रिटर्न लेकिन 3 अभिव्यक्ति देता है false.I यकीन है कि क्यों यह गलत देता है, क्योंकि नीचे दी गई छवि के अनुसार, यह सच लौटने के लिए माना जाता है नहीं कर रहा हूँ। Inheritance

छवि में आप Function.prototype के __ आद्य Object.prototype को __ संपत्ति बिंदु नोटिस कर सकते हैं।

किसी कृपया मेरी अवधारणाओं को स्पष्ट कर सकता है?

उत्तर

3

छवि में आप Function.prototype की __ proto __ प्रॉपर्टी पॉइंट ऑब्जेक्ट.प्रोटोटाइप को देख सकते हैं।

लेकिन है कि तुम क्या परीक्षण नहीं किया है! आपने Function.__proto__ का परीक्षण किया, जो वास्तव में Function.prototype के बराबर है। इसके बजाय इसे आजमाएं:

console.log(Function.prototype.__proto__ === Object.prototype); 
+1

शायद यह भी ध्यान दें कि 'फंक्शन' का प्रोटोटाइप वास्तव में 'खाली' फ़ंक्शन है। –

+0

आप सही हैं। लेकिन क्या करता है यह console.log (फंक्शन .__ proto__) वापसी होगी; चूंकि समारोह जेएस में एक पूर्वनिर्धारित वस्तु भी है। –

+0

आह, अब मैं अपने प्रश्न को समझने ... [समारोह वास्तव में एक पूर्वनिर्धारित निर्माता समारोह है] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function), नहीं एक पूर्वनिर्धारित वस्तु। आप 'नया समारोह()' इसी तरह आप कैसे 'नई प्वाइंट()' और 'नई वस्तु कॉल कर सकते हैं करने के लिए) कॉल कर सकते हैं (' – hugomg

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