2011-01-05 11 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'を使用することはできません:それはグローバルにならないように、変数をvarしてください。プロトタイプは、 'new'キーワードを使って生成されたオブジェクトに対してのみ使用され、関数(オブジェクトリテラルではない)のみが' new'キーワードで使用できます。 –

+0

おっと、そうです。プロトタイプはオブジェクトリテラルでは動作しません。 –

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演算子を使用することができますforループでin演算子を使用し、

var o = { a:42 }; 
console.log("a" in o); // true 
delete o.a;    // Or delete o["a"] 
console.log("a" in o); // false 

は、オブジェクトのすべてのプロパティを反復処理するには:あなたがオブジェクトからプロパティを削除したい場合は10

は、deleteキーワードを使用します。

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徹底 – 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 
関連する問題