如果我有一個對象:newbie:如何清理JavaScript中的對象?
var myobj={name: 'Some Value',
id: 'my id',
address: 'my address'
...}
myobj
已被動態擴展,通過myobj[custom_attribute]=SOME_VALUE
我想清理這個對象擁有空的屬性,這是MyObj中= {},該怎麼辦呢? (我不想使用循環來清理屬性逐個)
如果我有一個對象:newbie:如何清理JavaScript中的對象?
var myobj={name: 'Some Value',
id: 'my id',
address: 'my address'
...}
myobj
已被動態擴展,通過myobj[custom_attribute]=SOME_VALUE
我想清理這個對象擁有空的屬性,這是MyObj中= {},該怎麼辦呢? (我不想使用循環來清理屬性逐個)
,所以你要分配MyObj中= {},使之空?請原諒我,如果我讀了你的問題錯了,但在我看來,你想要做
myobj={};
這有什麼錯
myobj = {};
或
myobj = new Object();
?
這也是我暗示的問題,我可以使用myobj = {}嗎?我看到一些人說,即使使用myobj = {},它仍然保留對舊屬性的引用,因爲我是新手,我不確定這一點。感謝任何準確的答案,謝謝:) – Leem 2011-05-16 08:52:19
設置MyObj中以空對象,
myobj = {};
做到這一點的最快/最簡單的方法是:
myobj = {};
其他的答案是很好,如果你沒有被引用編輯對象。然而,如果你傳遞一個對象到一個函數,並希望原始對象受到影響,以及您可以使用此功能:
function emptyObject(objRef) {
for(var key in objRef) {
if(objRef.hasOwnProperty(key)) {
delete objRef[key];
}
}
}
這維持了原來的對象引用,也是很好的,你管理一個插件開發作爲參數提供的對象。兩個簡單的例子將展示如何這從簡單地設置等於{}
EX 1的對象的不同:
function setEmptyObject(obj) {
obj = {};
}
var a = {"name":"Tom", "site":"http://mymusi.cc"}
setEmptyObject(a);
console.log(a); //{"name":"Tom", "site":"http://mymusi.cc"}
使用emptyObject
EX 2()替代(函數定義如上):
var a = {"name":"Tom", "site":"http://mymusi.cc"}
emptyObject(a);
console.log(a); //{}
謝謝。我只是不太確定,看到我對@SirViver – Leem 2011-05-16 08:53:34
的迴應你可以使用這個。這將工作。 – Nanne 2011-05-16 09:03:04