असल में क्या करना है आप
Something.sayHi();
कर सकते हैं:
आप शायद कहना है कि लाइन चाहता था पहले उदाहरण में आप object literal घोषित करते हैं जो वास्तव में पहले से ही एक ऑब्जेक्ट उदाहरण है।
अपने दूसरे उदाहरण में, आप एक कन्स्ट्रक्टर फ़ंक्शन को परिभाषित करते हैं जिसका उपयोग ऑब्जेक्ट इंस्टेंस बनाने के लिए new
ऑपरेटर के साथ किया जा सकता है।
वस्तुओं के नए उदाहरण बनाने और प्रोटोटाइप विरासत करने के लिए ऑब्जेक्ट अक्षरों का भी उपयोग किया जा सकता है, डगलस क्रॉकफ़ोर्ड भी इस तकनीक को बढ़ावा देता है।
function object(o) {
function F() {}
F.prototype = o;
return new F();
}
यह सहायक समारोह एक बहुत ही सहज और सुविधाजनक तरीके से इस्तेमाल किया जा सकता:
मूल रूप से आप एक object
ऑपरेटर हो सकता है।
यह मूल रूप से एक पैरामीटर के रूप एक वस्तु प्राप्त करते हैं, समारोह एक नई वस्तु उदाहरण बनाई गई है अंदर, पुराने वस्तु नई वस्तु के प्रोटोटाइप को श्रृंखलित है, और इसके लिए लौट आए।
यह इस तरह इस्तेमाल किया जा सकता:
var oldObject = {
firstMethod: function() { alert('first'); },
secondMethod: function() { alert('second'); },
};
var newObject = object(oldObject);
newObject.thirdMethod = function() { alert('third'); };
var otherObject = object(newObject);
otherObject.firstMethod();
आप आगे के रूप में आप चाहते हैं जा सकते हैं, पहले से परिभाषित वस्तुओं से नई उदाहरणों बना रही है।
अनुशंसित:
यह भी मेरे लिए एक अच्छा सवाल, पोस्टिंग के लिए धन्यवाद है। –
संपादन में आपके प्रश्न के संबंध में, यह इस बात पर निर्भर करता है कि आप क्या करना चाहते हैं। यदि आपके पास ऑब्जेक्ट की केवल एक प्रति है, तो पहले वाक्यविन्यास के लिए जाएं। यदि कई प्रतियां बनाना चाहते हैं (जैसे कि 'कुछ' अन्य भाषाओं में 'कक्षा' थी), तो दूसरे वाक्यविन्यास (या वास्तव में, एक संपादित संस्करण के लिए जाएं जिसमें आप 'this.sayHi = फ़ंक्शन() {...} ', यह मानक है)। –