如果我有一个对象: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