我有一个删除操作符的代码片段,如下所示:
作为删除
(function() {
var objA = Object.create({
foo: 'foo'
});
var objB = objA;
objB.foo = 'bar';
delete objA.foo;
console.log(objA.foo);
console.log(objB.foo);
}());
//it logs-> foo
作为删除
foo
属性的操作符,它不应该存在,因此控制台应记录undefined
。然而,它记录的是初始化时属性的值foo
。为什么它没有删除属性?
Object.create(null, {foo:{value:'foo', configurable:true}});
向新对象添加属性,而不是向其[[Prototype]]
添加属性。 - RobG