इस प्रश्न के लिए के साथ क्या करना उम्मीद होती है नहीं है, मैं कुछ हल करने के लिए एक समाधान की अपेक्षा नहीं कर रहा हूँ, लेकिन चीजों को बेहतर ढंग से समझने के लिए करना चाहते ..एक्स एक समारोह ... क्या आप Object.create एक निर्माता
विनिर्देशों से कुछ उद्धरण:
संस्करण 5,1 (Link)
§15.2.3.5 Object.create (ओ [, गुण])
01,235,निर्माण कार्य एक निर्दिष्ट प्रोटोटाइप के साथ एक नई वस्तु बनाता है। जब निर्माण फ़ंक्शन कहा जाता है, तो निम्न चरणों को लिया जाता है:
- यदि टाइप (ओ) ऑब्जेक्ट या नल टाइप टाइपर अपवाद फेंक नहीं है।
- ओब्जे को एक नया ऑब्जेक्ट बनाने का नतीजा दें जैसे कि अभिव्यक्ति नया ऑब्जेक्ट() जहां ऑब्जेक्ट उस मानक के साथ मानक अंतर्निर्मित कन्स्ट्रक्टर है
- ओ [ओ प्रोटोटाइप]] ओबी की आंतरिक संपत्ति को ओ
- यदि तर्क गुण मौजूद हैं और अपरिभाषित नहीं हैं, तो अपने गुणों को ओबीजे में जोड़ें जैसे कि मानक अंतर्निर्मित फ़ंक्शन ऑब्जेक्ट.डेफिनप्रॉपर्टीज को तर्क ओबीजे और गुणों के साथ कॉल करके।
- वापसी obj।
संस्करण 6 - मसौदा (Link)
§19.1.3.2 Object.create (ओ [, गुण])
समारोह बनाने के लिए एक निर्दिष्ट के साथ एक नई वस्तु बनाता है प्रोटोटाइप। जब निर्माण फ़ंक्शन कहा जाता है, तो निम्न चरणों को लिया जाता है:
- यदि टाइप (ओ) ऑब्जेक्ट या नल टाइप टाइपर अपवाद फेंक नहीं है।
- obj सार आपरेशन का नतीजा हो चलो ObjectCreate तर्क ओ
- साथ तर्क गुण, वर्तमान और अपरिभाषित नहीं है तो एक। अमूर्त ऑपरेशन ऑब्जेक्टडिफिनप्रॉपर्टीज (ओबीजे, गुण) का परिणाम लौटाएं।
- वापसी obj।
- यदि टाइप (ओ) ऑब्जेक्ट या नल टाइप टाइपर अपवाद फेंक नहीं है।
अगर मैं सही ढंग से समझ, चश्मा के दोनों की अनुमति निम्नलिखित कोड निष्पादित करने के लिए:
function F() {
}
var x=Object.create(F);
// a minimal test
alert(x.prototype.constructor===F); // true
alert(x instanceof Function) // true
alert(typeof x) // 'object'
लगता है यह बनाया गया एक प्रकार का ऑब्जेक्ट से निकला है (गरीब शब्दावली के लिए खेद है ..)Function
के रूप में मैं फ़ायर्फ़ॉक्स में परीक्षण किया गया है, और इसलिए x
गैर invocable है:
x(); // x is not a function
मैं क्यों यह या तो नामंज़ूर नहीं है एक निर्माता O
के रूप में प्रयोग की जाने वाली या सिर्फ एक वैध बनाने के बारे में सोच रहा हूँ निर्माता।
तो मैं सोच रहा हूं कि आप ऑब्जेक्ट.क्रेट को कन्स्ट्रक्टर के साथ क्या करने की उम्मीद करेंगे?
मैं उम्मीद करता हूं कि 'ऑब्जेक्ट.क्रेट' को अनदेखा करना है कि यह एक कन्स्ट्रक्टर है, क्योंकि एल्गोरिदम को कॉल करने योग्य ऑब्जेक्ट की आवश्यकता नहीं है। चूंकि यह एक साधारण 'ऑब्जेक्ट' देता है, इसलिए मैं यह भी उम्मीद करता हूं कि नतीजा गैर-चालनीय हो। – Zeta
के लिए बाउंटी क्या है? क्या अभी भी बकाया प्रश्न हैं? क्या आप उत्तर अधिक विस्तृत होने के लिए चाहते हैं? – Bergi
दो को समान वोट होने पर स्वीकृत उत्तर के रूप में चिह्नित करने के लिए एक चुनना मुश्किल है। –