私たちは、次のオブジェクトがあるとします。私は、動的にそれに別のメンバーを追加する方法既存のオブジェクトにメンバーを追加する
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
演算子を使用することができます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 ]
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'を使用することはできません:それはグローバルにならないように、変数を
var
してください。プロトタイプは、 'new'キーワードを使って生成されたオブジェクトに対してのみ使用され、関数(オブジェクトリテラルではない)のみが' new'キーワードで使用できます。 –おっと、そうです。プロトタイプはオブジェクトリテラルでは動作しません。 –