我试图删除一个对象属性,它是另一个对象的浅层副本.但是当我尝试删除它时会出现问题,它会在原始值抛出预期输出时永远消失.
var obj = {
    name:"Tom"
};
var newObj = Object.create(obj);
delete newObj.name;//It never works!
console.log(newObj.name);//name is still thereDen*_*ret 14
newObj继承自obj.
您可以通过访问父对象来删除该属性:
delete Object.getPrototypeOf(newObj).name;
(更改父对象)
您也可以通过将值设置为undefined(例如)来遮蔽它:
newObj.name = undefined;
但是你不能删除newObj上的属性而不从父对象中删除它,因为原型被查找原型链直到找到它.