JavaScript中对象property的删除方法介绍


Posted in Javascript onDecember 30, 2014

JavaScript中,可以使用delete操作符来删除对象中的property:

var t = {a:42, b:26};

console.log(t);//Object {a=42, b=26}

delete t.a;

console.log(t);//Object {b=26}

这种property删除操作的局限性在于:delete操作符只能删除对象自身所有的property,无法删除其从prototype对象处继承而来的property。如果想删除prototype对象中的property,必须显式获取prototype对象后,在prototype对象中进行操作:

var o = {x:1, y:2};

var a = Object.create(o);

a.z = 3;

console.log(a);//Object {z=3, x=1, y=2}

delete a.x;//Can NOT delete inherited property

console.log(a);//Object {z=3, x=1, y=2}

delete a.z;//Can delete own property

console.log(a);//Object {x=1, y=2}

delete a.__proto__.x;

console.log(a);//Object {y=2}

如果删除了prototype对象中的property,那么所有从该prototype对象中继承的对象都会收到影响。

 

对于delete操作的返回值,JavaScript中遵循以下规则:

 

1.如果delete操作成功,返回true。
2.如果delete操作无任何效果(比如要删除的property并不存在),也返回true。
3.如果要delete的property,其configurable属性为false,那么在严格模式下会报TypeError错误,而在非严格模式下则返回false。
如果delete操作符所作用的是全局对象的property,那么在非严格模式下,代码中的全局对象可以省略:

this.c = 42;

delete c;//equal to delete this.c;

需要注意的是,在严格模式下,上述写法会抛SyntaxError错误。

Javascript 相关文章推荐
通过length属性判断jquery对象是否存在
Oct 18 Javascript
解析JavaScript中点号“.”的多义性
Dec 02 Javascript
javascript中局部变量和全局变量的区别详解
Feb 27 Javascript
BootStrap实现鼠标悬停下拉列表功能
Feb 17 Javascript
jquery中each循环的简单回滚操作
May 05 jQuery
详解vue-cli与webpack结合如何处理静态资源
Sep 19 Javascript
JavaScript实现与使用发布/订阅模式详解
Jan 19 Javascript
JavaScript封闭函数及常用内置对象示例
May 13 Javascript
使用jQuery如何写一个含验证码的登录界面
May 13 jQuery
vue选项卡切换登录方式小案例
Sep 27 Javascript
vue print.js打印支持Echarts图表操作
Nov 13 Javascript
react项目从新建到部署的实现示例
Feb 19 Javascript
JavaScript中检查对象property的存在性方法介绍
Dec 30 #Javascript
JavaScript中遍历对象的property的3种方法介绍
Dec 30 #Javascript
JavaScript语言对Unicode字符集的支持详解
Dec 30 #Javascript
JavaScript中的对象的extensible属性介绍
Dec 30 #Javascript
JavaScript中的对象序列化介绍
Dec 30 #Javascript
JavaScript中的数组特性介绍
Dec 30 #Javascript
JavaScript中数组成员的添加、删除介绍
Dec 30 #Javascript
You might like
一个分页的论坛
2006/10/09 PHP
PHP连接MongoDB示例代码
2012/09/06 PHP
基于Linux调试工具strace与gdb的常用命令总结
2013/06/03 PHP
Javascript中的window.event.keyCode使用介绍
2011/04/26 Javascript
JavaScript var声明变量背后的原理示例解析
2013/10/12 Javascript
JS脚本defer的作用示例介绍
2014/01/02 Javascript
JavaScript中Number.MAX_VALUE属性的使用方法
2015/06/04 Javascript
基于jquery实现人物头像跟随鼠标转动
2015/08/23 Javascript
jquery+html5时钟特效代码分享(可设置闹钟并且语音提醒)
2020/03/30 Javascript
jQuery layui常用方法介绍
2016/07/25 Javascript
angularJs使用$watch和$filter过滤器制作搜索筛选实例
2017/06/01 Javascript
axios对请求各种异常情况处理的封装方法
2018/09/25 Javascript
JavaScript实现的弹出遮罩层特效经典示例【基于jQuery】
2019/07/10 jQuery
vue 导航内容设置选中状态样式的例子
2019/11/01 Javascript
原生js拖拽实现图形伸缩效果
2020/02/10 Javascript
通过JS判断网页是否为手机打开
2020/10/28 Javascript
TypeScript魔法堂之枚举的超实用手册
2020/10/29 Javascript
详解Typescript里的This的使用方法
2021/01/08 Javascript
python实现的希尔排序算法实例
2015/07/01 Python
Python实现将SQLite中的数据直接输出为CVS的方法示例
2017/07/13 Python
利用python实现汉字转拼音的2种方法
2019/08/12 Python
djano一对一、多对多、分页实例代码
2019/08/16 Python
python中数字是否为可变类型
2020/07/08 Python
python实现学生管理系统开发
2020/07/24 Python
斯巴达比赛商店:Spartan Race
2019/01/08 全球购物
中学生班主任评语
2014/01/30 职场文书
优秀学生干部推荐材料
2014/02/03 职场文书
质量提升方案
2014/06/16 职场文书
爱祖国爱家乡演讲稿
2014/09/02 职场文书
自愿离婚协议书范文2014
2014/10/12 职场文书
校本课程教学计划
2015/01/19 职场文书
一篇文章学会Vue中间件管道
2021/06/20 Vue.js
C#连接ORACLE出现乱码问题的解决方法
2021/10/05 Oracle
详解Oracle块修改跟踪功能
2021/11/07 Oracle
python playwright 自动等待和断言详解
2021/11/27 Python
Apache Hudi的多版本清理服务彻底讲解
2022/03/31 Servers