我理解为什么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
}
换句话说,我在使用之前清除了属性的实例。这应该工作,还是我错过了一些边缘案例?
答案 0 :(得分:1)
你也可以创建一个" Clean"使用Object.create()
语法作为参数传递null
时没有属性的对象。
示例:
var clean = Object.create(null);
for(var key in clean) {
//do stuff no hasOwnProperties required
}