我想知道以下内容。给出此代码:
function displayprops(obj, name) {
console.log(name+":");
for(var prop in obj)
console.log(prop + ": " + obj[prop]);
}
var first = {prop: {}};
displayprops(first, "first"); // "prop: [object Object]"
var second = Object.create(first);
Object.defineProperty(second,"prop",{
enumerable:false
});
displayprops(second, "second"); // "prop: undefined"
创建的所有对象first
显然都应该继承该
prop
属性。
但是为什么创建的对象在迭代它时second
仍然显示在他的属性中,请注意它的值是. prop
undefined
我希望在将可枚举描述符设置为 false 时,从该原型继承的对象不应再显示这些属性
编辑:当我使用方法扩展 Object.prototype (无论出于何种原因)并将方法可枚举描述符设置为 false 时,它的行为符合预期
有人可以解释一下吗,也许我想错了方向
谢谢你的答案=)