如何删除Javascript对象属性
How to delete Javascript object property?
我正在尝试删除一个对象属性,该属性是另一个对象的浅层副本。但当我试图删除它时,问题就出现了,当原始值抛出预期输出时,它永远不会熄灭。
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上的属性,就无法删除它,因为原型是在原型链中查找的,直到找到为止。
基本上Object.create
会创建一个对象,根据传递的对象设置它的原型,然后它会返回它。因此,如果你想从Object.create
的返回对象中delete
任何属性,你必须访问它的原型。
var obj = { name:"Tom" };
var newObj = Object.create(obj);
delete Object.getPrototypeOf(newObj).name
console.log(newObj.name); //undefined.
相关文章:
- Chrome开发工具(如何知道我在调用哪个javascript对象)
- 循环遍历以数组为值的Javascript对象
- 从ajax请求中获取javascript对象
- 如何从对象的原型方法访问JavaScript对象属性
- 将XML转换为普通的旧JavaScript对象
- 通过引用传递JavaScript对象
- javascript对象操作:根据指定条件选择属性
- Javascript对象类在单击时打开窗口进行颜色选择,并在更改时替换对象背景颜色
- 如何在异步函数中使用javascript对象
- 临时Javascript对象
- 如何在ASP中为用户控件添加Javascript对象网
- 使用数组向下搜索Javascript对象
- Rails将JavaScript对象存储到Model的有效方式
- JavaScript对象不是从原型链继承的
- 如何创建具有默认值的JavaScript对象字段?(AngularJS模型相关)
- SetInterval在javascript对象中表现怪异
- Javascript 对象和 this 关键字
- 如何在不知道关键字的情况下访问javascript对象值
- 在 JavaScript 对象中设置要使用的运算符的属性
- 如何搜索JavaScript对象并更改值