新手:如何在javascript中清理对象?

时间:2011-05-16 08:48:07

标签: jquery javascript javascript-framework

如果我有一个对象:

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

myobj已通过myobj[custom_attribute]=SOME_VALUE

动态扩展

我想清理这个对象有空属性,那是myobj = {},怎么做? (我不想使用for循环逐个清理属性)

6 个答案:

答案 0 :(得分:4)

有什么问题
myobj = {};

myobj = new Object();

答案 1 :(得分:4)

将myobj设置为空对象

myobj = {};

答案 2 :(得分:4)

所以你想分配myobj = {},让它变空?请原谅我,如果我错误地读了你的问题,但在我看来你想做的事情

myobj={};

答案 3 :(得分:2)

最快/最简单的方法是:

myobj = {};

答案 4 :(得分: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"}

EX 2使用emptyObject()替代(上面定义的函数):

var a = {"name":"Tom", "site":"http://mymusi.cc"}
emptyObject(a);
console.log(a); //{}

答案 5 :(得分:0)

一行:

Object.keys(obj).forEach( k => delete obj[k])
相关问题