“清除”对象是避免使用hasOwnProperty的可行方法吗?

时间:2013-02-23 12:31:15

标签: javascript object hasownproperty

我理解为什么hasOwnProperty是必要的,即使一个人完全控制一个对象,因为Object.prototype可能已被修改。但如果我真的想避免它,请考虑一下:

function CleanObject() {
    var result = {};
    for (var key in result) {
        delete result[key];
    }
    return result;
}

// Later...

var obj = CleanObject();
for (var key in obj) {
    // No hasOwnProperty check necessary
}

换句话说,我在使用之前清除了属性的实例。这应该工作,还是我错过了一些边缘案例?

1 个答案:

答案 0 :(得分:1)

你也可以创建一个" Clean"使用Object.create()语法作为参数传递null时没有属性的对象。

示例:

var clean = Object.create(null);

for(var key in clean) {
 //do stuff no hasOwnProperties required
}