2011-01-05 14 views

उत्तर

5

निम्नलिखित आजमाएँ

var obj = { 
    fn1: function() { 
    } 
} 

obj.fn2 = function() {} // this will add another member to existing object 

उम्मीद है कि इससे मदद मिलेगी।

धन्यवाद!

हुसैन।

-2

आपको लगता है कि के लिए प्रोटोटाइप का उपयोग कर सकते हैं ...

obj.prototype.fn2 = function() { 
.... 
} 

या बस

obj.fn2 = function() { 
.... 
} 
+0

आप इस के लिए prototype' उपयोग नहीं कर सकते '। प्रोटोटाइप का उपयोग केवल 'नए' कीवर्ड का उपयोग करके बनाए गए ऑब्जेक्ट्स के लिए किया जाता है, और केवल फ़ंक्शन (ऑब्जेक्ट्स ऑब्जेक्ट्स नहीं) का उपयोग 'नए' कीवर्ड के साथ किया जा सकता है। –

+0

ओह, आप सही हैं। प्रोटोटाइप w/ऑब्जेक्ट शाब्दिक काम नहीं करेगा। –

5

यह वास्तव में काफी सरल है:

obj.fn2 = function() { } 
38

के रूप में अन्य लोगों ने बताया है

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 ] 
+0

+1 पूर्णता के लिए +1 पूर्णता – Ben

+0

+1 भी। ध्यान देने योग्य एक और बात यह है कि यदि आप - मुझे पसंद करते हैं - उसी तरह ऑब्जेक्ट-इन-ऑब्जेक्ट स्टोरेज का उपयोग करना चाहते हैं, तो आपको पहले प्रोपरी के अस्तित्व की जांच करनी चाहिए और यदि नहीं, तो इसे "obj [propName] = { } ", और फिर आप" obj [propName] [subPropName] "की प्रक्रिया को दोहरा सकते हैं। – David

0
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 
संबंधित मुद्दे