javascript - 如何删除 Javascript 对象属性?

标签 javascript

我正在尝试删除一个对象属性,它是另一个对象的浅拷贝。 但是当我尝试删除它时出现了问题,它永远不会消失,而原始值会抛出预​​期的输出。

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/

相关文章:

JavaScript/符号 : counting the number of ✔'s in a string

java - 使用 Javascript 和 Java 验证图像上传

javascript - 停止 iOS7 放大 webview

javascript - 使用php将结果html文件(包含js代码)导入到mysql

javascript - QML - 动态创建ListModel(JAVASCRIPT问题)

javascript - 递归javascript数组长度

javascript - 注册表单的 Facebook 像素对话

javascript - html5 Canvas 绘图位置不正确

javascript - 无法向对象添加属性(无法设置未定义的属性)

javascript - 如何通过 A html 元素监听 http 请求?