我理解为什么 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
}
换句话说,我在使用它之前清除了属性的实例。这应该有效,还是我错过了一些极端情况?