का उपयोग करने का लाभ this question से अलग है। नीचे दिया गया कोड JavaScript: The Definitive Guide से है। वह मूल रूप से एक उत्तराधिकारी विधि को परिभाषित कर रहा है जो ऑब्जेक्ट को सुरक्षित करता है। अगर यह अस्तित्व में है, तो अन्यथा रचनाकारों का उपयोग करके सादे पुराने जावास्क्रिप्ट विरासत और चारों ओर प्रोटोटाइप को स्वैप करना।ऑब्जेक्ट.क्रेट
मेरा प्रश्न है, क्योंकि ऑब्जेक्ट.क्रेट
पर मौजूद नहीं है, बहुत सारे सामान्य ब्राउज़र
आईई, इसका उपयोग करने का भी प्रयास करने का क्या मतलब है? यह निश्चित रूप से कोड को अव्यवस्थित करता है, और पिछले प्रश्न पर टिप्पणीकर्ताओं में से एक ने बताया कि Object.create isn't too fast।
तो इस ईसीएमए 5 फ़ंक्शन का कभी-कभी उपयोग करने के लिए अतिरिक्त कोड जोड़ने का प्रयास करने में क्या फायदा है जो ऐसा करने के "पुराने" तरीके से धीमा हो सकता है या नहीं?
function inherit(p) {
if (Object.create) // If Object.create() is defined...
return Object.create(p); // then just use it.
function f() {}; // Define a dummy constructor function.
f.prototype = p; // Set its prototype property to p.
return new f(); // Use f() to create an "heir" of p.
}
यह वास्तव में एक उपयोगी उत्तर है; मैं देख सकता हूं कि क्यों निर्माण बेहतर होगा, क्योंकि यह आपको बनाए गए ऑब्जेक्ट में गुणों पर बहुत अधिक नियंत्रण देता है। मैं देख सकता हूं कि आप 'var bob = object.create (userB, {"id": {value: 12, संख्यात्मक: झूठा' और इतने पर क्यों कहना चाहते हैं, लेकिन यह कोड IE9 और नीचे में हिंसक रूप से क्रैश नहीं होगा ? इस तरह के कोड (अद्भुत) स्थितियों तक सीमित नहीं होंगे जहां आप अपने उपयोगकर्ता का उपयोग कर रहे ब्राउज़र को नियंत्रित कर सकते हैं? –
दूसरे शब्दों में, IE8 में न केवल मुझे पुराने जेएस का उपयोग करके मेरी नई विरासत विधि प्राप्त करने जा रही है चारों ओर प्रोटोटाइप को स्वैप करने की विधि, लेकिन मुझे उस ऑब्जेक्ट को बदलना होगा जो कि "बच्चे" ऑब्जेक्ट के रूप में कार्य करने के लिए पास किया गया है जो उपयोगकर्ता बी से प्राप्त होता है। '{" id ": {value: 12, संख्यात्मक: false के बजाय 'मुझे '{" id "की आवश्यकता नहीं होगी: 12," नाम ":" बॉब "और इसी तरह? –
@AdamRackis, यह सच है, कोड जैसा पिछड़ा संगत नहीं है, लेकिन मुझे यकीन है कि वहां हैं ऐसी परियोजनाएं जो इन चीजों को आज़माकर व्यवस्थित करती हैं। यदि नहीं, तो यह एक अच्छा विचार है। उन परिवर्तनों को स्वचालित करना मुश्किल नहीं होगा। – davin