2011-05-16 77 views
1

如果我有一个对象:newbie:如何清理JavaScript中的对象?

var myobj={name: 'Some Value', 
      id: 'my id', 
      address: 'my address' 
      ...} 

myobj已被动态扩展,通过myobj[custom_attribute]=SOME_VALUE

我想清理这个对象拥有空的属性,这是MyObj中= {},该怎么办呢? (我不想使用循环来清理属性逐个)

回答

4

,所以你要分配MyObj中= {},使之空?请原谅我,如果我读了你的问题错了,但在我看来,你想要做

myobj={}; 
+0

谢谢。我只是不太确定,看到我对@SirViver – Leem 2011-05-16 08:53:34

+0

的回应你可以使用这个。这将工作。 – Nanne 2011-05-16 09:03:04

4

这有什么错

myobj = {}; 

myobj = new Object(); 

+0

这也是我暗示的问题,我可以使用myobj = {}吗?我看到一些人说,即使使用myobj = {},它仍然保留对旧属性的引用,因为我是新手,我不确定这一点。感谢任何准确的答案,谢谢:) – Leem 2011-05-16 08:52:19

4

设置MyObj中以空对象,

myobj = {}; 
2

做到这一点的最快/最简单的方法是:

myobj = {}; 
0

其他的答案是很好,如果你没有被引用编辑对象。然而,如果你传递一个对象到一个函数,并希望原始对象受到影响,以及您可以使用此功能:

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); //{}