मान लीजिए हम निम्नलिखित वस्तु हैकिसी मौजूदा ऑब्जेक्ट को सदस्य जोड़ना
var obj = {
fn1: function() {
}
}
कैसे मैं गतिशील इसे करने के लिए किसी अन्य सदस्य जोड़ सकते हैं, कहते हैं कि
fn2: function() {}
मान लीजिए हम निम्नलिखित वस्तु हैकिसी मौजूदा ऑब्जेक्ट को सदस्य जोड़ना
var obj = {
fn1: function() {
}
}
कैसे मैं गतिशील इसे करने के लिए किसी अन्य सदस्य जोड़ सकते हैं, कहते हैं कि
fn2: function() {}
निम्नलिखित आजमाएँ
var obj = {
fn1: function() {
}
}
obj.fn2 = function() {} // this will add another member to existing object
उम्मीद है कि इससे मदद मिलेगी।
धन्यवाद!
हुसैन।
आपको लगता है कि के लिए प्रोटोटाइप का उपयोग कर सकते हैं ...
obj.prototype.fn2 = function() {
....
}
या बस
obj.fn2 = function() {
....
}
यह वास्तव में काफी सरल है:
obj.fn2 = function() { }
के रूप में अन्य लोगों ने बताया है
obj.fn2 = function(){ ... };
ध्यान दें कि यदि "fn2" एक वैध पहचानकर्ता नहीं है, आप के बजाय 'सरणी' अंकन वस्तु के लिए उपयोग करना चाहिए:
obj["fn2"] = function(){ ... };
obj["!! crazy-names#allowed?!"] = function(){ ... };
यह भी है तुम कैसे करते हैं, अगर आप का नाम था एक चर में संग्रहीत संपत्ति:
if ("fn2" in obj){ ... }
:
var propName = "fn2";
obj[propName] = function(){ ... };
आप अगर एक संपत्ति एक वस्तु के लिए मौजूद है परीक्षण करना चाहते हैं, तो आप in
ऑपरेटर का उपयोग कर सकते हैं 10
आप एक वस्तु से एक प्रॉपर्टी को निकालना चाहते हैं, delete
कीवर्ड का उपयोग करें:
var o = { a:42 };
console.log("a" in o); // true
delete o.a; // Or delete o["a"]
console.log("a" in o); // false
एक वस्तु में सभी गुण से अधिक पुनरावृति करने के लिए, पाश के लिए एक में in
ऑपरेटर का उपयोग करें। इतना है कि यह वैश्विक नहीं है चर var
करना सुनिश्चित करें:
var o = { a:42, b:17 };
var allPropertyNames = [];
var allPropertyValues = [];
for (var propName in o){
// If you don't do this test, propName might be a property inherited
// by this object, and not a property on the object itself.
if (o.hasOwnProperty(propName)){
allPropertyNames.push(propName);
allPropertyValues.push(o[propName]);
}
}
console.log(allPropertyNames); // [ "a", "z" ]
console.log(allPropertyValues); // [ 42, 17 ]
+1 पूर्णता के लिए +1 पूर्णता – Ben
+1 भी। ध्यान देने योग्य एक और बात यह है कि यदि आप - मुझे पसंद करते हैं - उसी तरह ऑब्जेक्ट-इन-ऑब्जेक्ट स्टोरेज का उपयोग करना चाहते हैं, तो आपको पहले प्रोपरी के अस्तित्व की जांच करनी चाहिए और यदि नहीं, तो इसे "obj [propName] = { } ", और फिर आप" obj [propName] [subPropName] "की प्रक्रिया को दोहरा सकते हैं। – David
var obj = { };
// Adding function by extending the object using dot notation
obj.subtract = function(num1,num2){
return num1 - num2;
};
console.log(obj.subtract(8,5));//3
//Adding function by extending the object using bracket notation
obj['multiply them'] = function(num1,num2){
return num1 * num2 ;
};
console.log(obj[' multiply them '](3,3)); // 9
आप इस के लिए prototype' उपयोग नहीं कर सकते '। प्रोटोटाइप का उपयोग केवल 'नए' कीवर्ड का उपयोग करके बनाए गए ऑब्जेक्ट्स के लिए किया जाता है, और केवल फ़ंक्शन (ऑब्जेक्ट्स ऑब्जेक्ट्स नहीं) का उपयोग 'नए' कीवर्ड के साथ किया जा सकता है। –
ओह, आप सही हैं। प्रोटोटाइप w/ऑब्जेक्ट शाब्दिक काम नहीं करेगा। –