मुझे पता है कि prototype
जावास्क्रिप्ट फ़ंक्शन ऑब्जेक्ट्स की प्रॉपर्टी को कन्स्ट्रक्टर के रूप में फ़ंक्शन का उपयोग करके तत्काल ऑब्जेक्ट्स की आंतरिक [[Prototype]]
प्रॉपर्टी (ए.के.ए. __proto__
) पर कॉपी किया गया है।जावास्क्रिप्ट फ़ंक्शन की प्रोटोटाइप प्रॉपर्टी का प्रारंभिक मान क्या है?
function Foo() {}
Foo.prototype = {
toString: function() { return "I'm a Foo!"; }
}
new Foo().toString()
// --> "I'm a Foo!"
ऐसा लगता है कि यह काम करता है कि के लिए कक्षा तरीकों मौजूदा नव की प्रोटोटाइप के रूप में कार्य करना चाहिए जोड़ने के लिए बड़े पैमाने पर अभ्यास है: तो, मैं किसी भी वस्तु को यह संपत्ति है कि मैं प्रोटोटाइप के रूप में कार्य करना चाहते हैं निर्धारित कर सकते हैं इस तरह उत्पन्न कार्य:
function Bar() {}
Bar.prototype.toString = function() {
return "I'm a Bar!";
}
new Bar().toString()
// --> "I'm a Bar!"
यह मेरे लिए स्पष्ट नहीं है, हालांकि है, क्या prototype
संपत्ति के प्रारंभिक मूल्य है।
function Baz() {}
Baz.prototype
// --> Baz {
// constructor: function Baz() {},
// __proto__: Object
// }
टिप्पणी दिखाती है कि क्रोम का जावास्क्रिप्ट कंसोल प्रिंट करता है। क्या इसका मतलब यह है कि मैं जो भी काम करता हूं वह वास्तव में दो ऑब्जेक्ट बनाता है? एक समारोह के लिए स्वयं (constructor
) और एक प्रोटोटाइप के लिए?
क्या यह ईसीएमएस्क्रिप्ट मानक में कहीं परिभाषित है? मैंने इसे खोजने की कोशिश की लेकिन नहीं कर सका। क्या सभी ब्राउज़र इस तरह से संभालते हैं?
धन्यवाद। यही वह जवाब था जिसे मैं ढूंढ रहा था। – MForster
ओएमजी! मैं अब और फिर ईसीएमएस्क्रिप्ट विनिर्देश में कूदता हूं, लेकिन यह शायद ही पठनीय है। क्या आप एक ऐसे संसाधन को जानते हैं जो चरण-दर-चरण में सब कुछ बताता है (या कम से कम उन भयानक भागों को समझाता है)? –
दुख की बात नहीं। यह शर्म की बात है कि ईसीएमएस्क्रिप्ट के लिए वास्तविक अंग्रेजी में एक भाषा के रूप में कोई अच्छा संदर्भ नहीं है, विशेष रूप से इसकी कई विशेषताएं हैं ... उदार होने के लिए ... थोड़ा विचित्र। हमारे पास एमडीसी, एमएसडीएन और एडोब जैसे विक्रेता-विशिष्ट मार्गदर्शिकाएं हैं, हमें निकट-उपयोग करने योग्य ईसीएमए स्पेक मिला है (आप उपर्युक्त भाषा में उपयोग करते हैं, लेकिन यह अभी भी वास्तव में सबसे अच्छा समय पर चल रहा है), और इसके अलावा यादृच्छिक ट्यूटोरियल साइटों का गटर है जो त्रुटियों और भयानक सलाह से भरे हुए हैं। और यह, दुनिया में सबसे व्यापक रूप से उपयोग की जाने वाली भाषाओं में से एक के लिए। यह निराशाजनक है। – bobince