2011-01-05 80 views

回答

5

試試以下

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

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

希望這會有所幫助。

謝謝!

Hussain。

-2

你可以使用原型爲...

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

或者只是

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

不能使用'prototype'這一點。原型僅用於使用'new'關鍵字創建的對象,並且只有函數(不是對象文字)可以與'new'關鍵字一起使用。 – 2011-01-05 05:22:56

+0

糟糕,你是對的。原型將無法使用對象字面值。 – 2011-01-08 03:23:28

5

這是很簡單的實際上是:

obj.fn2 = function() { } 
38

正如其他人所指出的:

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

需要注意的是,如果「FN2」不是一個有效的標識符,則必須改用「數組」符號的對象:

obj["fn2"] = function(){ ... }; 
obj["!! crazy-names#allowed?!"] = function(){ ... }; 

這也是你會怎麼做,如果你有名字了屬性存儲在一個變量:

var propName = "fn2"; 
obj[propName] = function(){ ... }; 

如果你想測試,如果屬性存在一個對象,你可以使用in操作:

if ("fn2" in obj){ ... } 

如果要刪除對象的屬性,使用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運營商在for循環中。一定要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徹底性 – Ben 2011-01-05 05:21:37

+0

爲了徹底性,以及。另一件值得注意的事情是,如果你像我一樣想要以相同方式使用對象內對象存儲,則應首先檢查該對象的存在,如果不存在,則將其設置爲「obj [propName] = { }「,然後您可以重複」obj [propName] [subPropName]「的過程 – David 2013-11-05 16:36:42

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