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 相关文章推荐
js change,propertychange,input事件小议
Dec 20 Javascript
jQuery LigerUI 使用教程表格篇(1)
Jan 18 Javascript
jquery如何把数组变为字符串传到服务端并处理
Apr 30 Javascript
JavaScript中操作字符串之localeCompare()方法的使用
Jun 06 Javascript
JS实现的最简Table选项卡效果
Oct 14 Javascript
基于AngularJs + Bootstrap + AngularStrap相结合实现省市区联动代码
May 30 Javascript
AngularJS基于ui-route实现深层路由的方法【路由嵌套】
Dec 14 Javascript
详解用webpack把我们的业务模块分开打包的方法
Jul 20 Javascript
JS中正则表达式要注意lastIndex属性
Aug 08 Javascript
详解组件库的webpack构建速度优化
Jun 18 Javascript
javascript简单实现深浅拷贝过程详解
Oct 08 Javascript
node.js 如何监视文件变化
Sep 01 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 jquery 实现新闻标签分类与无刷新分页
2009/12/18 PHP
php 广告调用类代码(支持Flash调用)
2011/08/11 PHP
php全排列递归算法代码
2012/10/09 PHP
php实现的替换敏感字符串类实例
2014/09/22 PHP
php使用simplexml_load_file加载XML文件并显示XML的方法
2015/03/19 PHP
CodeIgniter删除和设置Cookie的方法
2015/04/07 PHP
Yii 2中的load()和save()示例详解
2017/08/03 PHP
json跟xml的对比分析
2008/06/10 Javascript
javascript offsetX与layerX区别
2010/03/12 Javascript
在JavaScript中获取请求的URL参数
2010/12/22 Javascript
javascript面向对象之二 命名空间
2011/02/08 Javascript
基于jquery的放大镜效果
2012/05/30 Javascript
基于JQuery的类似新浪微博展示信息效果的代码
2012/07/23 Javascript
Jquery判断$("#id")获取的对象是否存在的方法
2013/09/25 Javascript
js arguments,jcallee caller用法总结
2013/11/30 Javascript
JavaScript实现关键字高亮功能
2014/11/12 Javascript
jquery实现对联广告的方法
2015/02/05 Javascript
jQuery UI设置固定日期选择特效代码分享
2015/08/27 Javascript
解决layui表格的表头不滚动的问题
2019/09/04 Javascript
分享8个JavaScript库可更好地处理本地存储
2020/10/12 Javascript
python通过shutil实现快速文件复制的方法
2015/03/14 Python
python中threading超线程用法实例分析
2015/05/16 Python
Django查询数据库的性能优化示例代码
2017/09/24 Python
pandas 按照特定顺序输出的实现代码
2018/07/10 Python
Python中应该使用%还是format来格式化字符串
2018/09/25 Python
python实现归并排序算法
2018/11/22 Python
Python快速转换numpy数组中Nan和Inf的方法实例说明
2019/02/21 Python
python多任务之协程的使用详解
2019/08/26 Python
python文件处理fileinput使用方法详解
2020/01/02 Python
美国最大的在线水培用品商店:GrowersHouse.com
2018/08/14 全球购物
纺织工程专业个人求职信范文
2014/01/27 职场文书
共产党员公开承诺践诺书
2014/05/28 职场文书
勿忘国耻9.18演讲稿(经典篇)
2014/09/14 职场文书
解决pycharm安装scrapy DLL load failed:找不到指定的程序的问题
2021/06/08 Python
React如何创建组件
2021/06/27 Javascript
详解JSON.parse和JSON.stringify用法
2022/02/18 Javascript