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 相关文章推荐
jquery使用append(content)方法注意事项分享
Jan 06 Javascript
flash+jQuery实现可关闭及重复播放的压顶广告
Apr 15 Javascript
PHP+mysql+Highcharts生成饼状图
May 04 Javascript
Bootstrap Metronic完全响应式管理模板学习笔记
Jul 08 Javascript
jQuery内容过滤选择器用法示例
Sep 09 Javascript
Webpack打包慢问题的完美解决方法
Mar 16 Javascript
详谈构造函数加括号与不加括号的区别
Oct 26 Javascript
vue项目在安卓低版本机显示空白的原因分析(两种)
Sep 04 Javascript
Cookbook组件形式:优化 Vue 组件的运行时性能
Nov 25 Javascript
解决微信浏览器缓存站点入口文件(IIS部署Vue项目)
Jun 17 Javascript
使用 Vue 实现一个虚拟列表的方法
Aug 20 Javascript
vue ssr服务端渲染(小白解惑)
Nov 10 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
PHP数组无限分级数据的层级化处理代码
2012/12/29 PHP
php实现解析xml并生成sql语句的方法
2018/02/03 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
PHP PDO数据库操作预处理与注意事项
2019/03/16 PHP
PHP程序守护进程化实现方法详解
2020/07/16 PHP
PHP 99乘法表的几种实现代码
2020/10/13 PHP
JavaScript的Function详细
2006/11/14 Javascript
IE6背景图片不缓存问题解决方案及图片使用策略多个方法小结
2012/05/14 Javascript
分享精心挑选的23款美轮美奂的jQuery 图片特效插件
2012/08/14 Javascript
jquery动态增加text元素以及删除文本内容实例代码
2013/07/01 Javascript
详解JavaScript时间格式化
2015/12/23 Javascript
原生JS实现风箱式demo,并封装了一个运动框架(实例代码)
2016/07/22 Javascript
JS对象的深度克隆方法示例
2017/03/16 Javascript
详解vue-router 2.0 常用基础知识点之router-link
2017/05/10 Javascript
vue双向数据绑定知识点总结
2018/04/18 Javascript
详解JavaScript的数据类型以及数据类型的转换
2019/04/20 Javascript
微信小程序+云开发实现欢迎登录注册
2019/05/24 Javascript
如何实现echarts markline标签名显示自己想要的
2020/07/20 Javascript
jQuery实现二级导航菜单的示例
2020/09/30 jQuery
[00:12]2018DOTA2亚洲邀请赛SOLO赛 MidOne是否中单第一人?
2018/04/05 DOTA
python局部赋值的规则
2013/03/07 Python
python中的实例方法、静态方法、类方法、类变量和实例变量浅析
2014/04/26 Python
Django中模型Model添加JSON类型字段的方法
2015/06/17 Python
Python批处理删除和重命名文件夹的实例
2018/07/11 Python
python3 pygame实现接小球游戏
2019/05/14 Python
Python API 自动化实战详解(纯代码)
2019/06/11 Python
Python在cmd上打印彩色文字实现过程详解
2019/08/07 Python
python文字和unicode/ascll相互转换函数及简单加密解密实现代码
2019/08/12 Python
python中如何使用insert函数
2020/01/09 Python
第二层交换机和路由器的区别?第三层交换机和路由器的区别?
2013/05/23 面试题
通信工程毕业生求职信
2013/11/16 职场文书
给小学生的新年寄语
2014/04/04 职场文书
工作建议书范文
2014/05/13 职场文书
爱心捐助活动总结
2015/05/09 职场文书
抢劫罪辩护词
2015/05/21 职场文书
2015年暑期社会实践报告
2015/07/13 职场文书