1
我明白为什么hasOwnProperty是有必要的,即使一个人完全控制了一个对象,因为Object.prototype可能已被修改。但如果我真的想避免它,请考虑这一点:是否“清除”了一个可避免使用hasOwnProperty的可行方法?
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
}
换句话说,我在使用它之前清除属性的实例。如果这项工作,或者我错过了一些边缘情况?
http://es5.github.com/#x8.12.7规定:'delete's不向上传播原型链(虽然不如清楚)。 – 2013-02-23 13:47:41