我正在尝试删除一个对象属性,它是另一个对象的浅拷贝。 但是当我尝试删除它时出现了问题,它永远不会消失,而原始值会抛出预期的输出。
var obj = {
name:"Tom"
};
var newObj = Object.create(obj);
delete newObj.name;//It never works!
console.log(newObj.name);//name is still there
最佳答案
newObj
继承自 obj
。
您可以通过访问父对象来删除该属性:
delete Object.getPrototypeOf(newObj).name;
(改变父对象)
您也可以通过将值设置为 undefined
来隐藏它(例如):
newObj.name = undefined;
但是您不能删除 newObj 上的属性而不从父对象中删除它,因为在 prototype chain 中查找了原型(prototype)。直到找到为止。
关于javascript - 如何删除 Javascript 对象属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36644535/