本文摘自PHP中文网,作者青灯夜游,侵删。
在javascript中,可以使用delete运算符来删除对象的属性,它的操作数应当是一个属性访问表达式;例“var obj={x:1};delete obj.x;”。delete运算符只能删除自由属性,不能删除继承属性。
本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。
delete运算符可以删除对象的属性。它的操作数应当是一个属性访问表达式。让人感到意外的是,delete只是断开属性和宿主对象的联系,而不会去操作属性中的属性:
1 2 |
|
delete运算符只能删除自由属性,不能删除继承属性(要删除继承属性必须从定义这个属性的原型对象上删除它,而且这会影响到所有继承自这个原型的对象)。
注:
1 2 3 |
|
执行这段代码后b.x的值仍为1。由于已经删除的属性的引用依然存在,因此在JavaScript的某些实现中,可能因为这种不严谨的代码而造成内存泄漏。所以在销毁对象的时候,要遍历属性中的属性,依次删除。
当delete表达式删除成功或没有任何副作用(比如删除不存在的属性时),它返回true。如果delete后不是一个属性访问表达式,delete同样返回true。
1 2 3 4 5 |
|
delete不能删除那些可配置性为false的属性(尽管可以删除不可扩展对象的可配置属性)。某些内置对象的属性是不可配置的,比如通过变量声明和函数声明创建的全局对象的属性。在严格模式中,删除一个不可配置属性会报一个类型错误。在非严格模式下中,在这些情况下的delete操作符 会返回false:
1 2 3 4 5 |
|
当在非严格模式中删除全局对象的可配置和属性时,可以省略对全局对象的引用,直接在delete操作符后跟随要删除的属性名即可:
1 2 |
|
然而在严格模式中,delete后跟随一个非法的操作数(比如x),则会报一个语法错误,因此必须显示指定对象及其属性:
1 2 |
|
【推荐学习:javascript高级教程】
以上就是javascript怎么删除对象的属性的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
更多相关阅读请进入《javascript》频道 >>

Vue.js 设计与实现 基于Vue.js 3 深入解析Vue.js 设计细节
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者