javascript属性删除
javascript property deletion
只是想知道这个:
之间有什么区别,或者根本没有区别
delete obj.someProperty
和
obj.someProperty=undefined
第二个版本将属性设置为现有值undefined
,而第一个版本从对象中删除键。在对象上迭代或使用in
关键字时可以看到差异。
var obj = {prop: 1};
'prop' in obj; // true
obj.prop = undefined;
'prop' in obj; // true, it's there with the value of undefined
delete obj.prop;
'prop' in obj; // false
在对象上迭代时会实现差异。删除属性时,它不会包含在循环中,而将值更改为undefined会包含它。对象的长度或迭代次数会有所不同。
以下是关于在JavaScript中删除的一些很棒的(尽管是高级的)信息:
http://perfectionkills.com/understanding-delete/
使用delete
实际上会将键本身从对象中移除。如果将值设置为undefined
,则它们的键仍然存在,但该值是唯一更改的内容。
前者实际上会删除该属性,后者会保留该属性,但将其设置为undefined
。
如果在所有属性上循环(for (props in obj) { }
)或测试是否存在一个(if ('someProperty' in obj) {}
)
相关文章:
- 在不知道深度或父属性的情况下从对象中删除属性
- 如何从对象中删除属性
- 使用jQuery添加和删除属性
- 为什么没有从数组中存在的对象中删除属性
- 删除属性后刷新DOM,而不象chrome那样刷新页面
- Jquery 在当前之前从元素中删除属性
- 在窗口调整大小时删除属性
- 如何从使用 jquery 添加的项中删除属性
- 从 JavaScript 中的 XAML 元素中删除属性
- 主干模型.未设置不删除属性
- 无法在单击时添加/删除属性
- 从主干.js模型中删除属性
- 如果选中复选框,请删除属性
- jQuery单击功能可从元素中删除属性并在单独单击时恢复属性
- 如果找到特定类,如何添加和删除属性
- 如何使用 Javascript 从 DOM 元素中删除属性
- 从 Javascript 对象中删除属性
- 量角器未知错误,从 DOM 中删除属性
- 如何使用jquery onchange事件在HTML中添加和删除属性
- 如何从任何级别的嵌套javascript对象中删除属性