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实现简单折叠、展开菜单的方法
Aug 28 Javascript
用原生js统计文本行数的简单示例
Aug 19 Javascript
Vue.JS入门教程之事件监听
Dec 01 Javascript
javascript replace()第二个参数为函数时的参数用法
Dec 26 Javascript
使用AngularJS 跨站请求如何解决jsonp请求问题
Jan 16 Javascript
angular ng-repeat数组中的数组实例
Feb 18 Javascript
JS ES6多行字符串与连接字符串的表示方法
Apr 26 Javascript
解决低版本的浏览器不支持es6的import问题
Mar 09 Javascript
如何编写一个d.ts文件的步骤详解
Apr 13 Javascript
通过js随机函数Math.random实现乱序
May 19 Javascript
JS实现简单打字测试
Jun 24 Javascript
jQuery实现查看图片功能
Dec 01 jQuery
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
DOMXML函数笔记
2006/10/09 PHP
php错误、异常处理机制(补充)
2012/05/07 PHP
php 查找数组元素提高效率的方法详解
2017/05/05 PHP
php 删除指定文件夹的实例讲解
2017/07/25 PHP
PHP getNamespaces()函数讲解
2019/02/03 PHP
php常用日期时间函数实例小结
2019/07/04 PHP
js获取变量
2006/08/24 Javascript
文本框根据输入内容自适应高度的代码
2011/10/24 Javascript
圣诞节Merry Christmas给博客添加浪漫的下雪效果基于jquery实现
2012/12/27 Javascript
js查找某元素中的所有图片地址的方法
2014/01/16 Javascript
一个Action如何调用两个不同的方法
2014/05/22 Javascript
iframe如何动态创建及释放其所占内存
2014/09/03 Javascript
node.js中的buffer.Buffer.isBuffer方法使用说明
2014/12/14 Javascript
Javascript 拖拽的一些简单的应用(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
jQuery下拉框的简单应用
2016/06/24 Javascript
js仿小米官网图片轮播特效
2016/09/29 Javascript
JS传播事件、取消事件默认行为、阻止事件传播详解
2017/08/14 Javascript
微信小程序实现根据字母选择城市功能
2017/08/16 Javascript
vue中render函数的使用详解
2018/10/12 Javascript
如何实现一个webpack模块解析器
2018/10/24 Javascript
关于layui toolbar和template的结合使用方法
2019/09/19 Javascript
vue计算属性无法监听到数组内部变化的解决方案
2019/11/06 Javascript
[15:56]Heroes18_暗影萨满(完美)
2014/10/31 DOTA
[01:03:00]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第一局
2016/02/25 DOTA
用python写asp详细讲解
2013/12/16 Python
使用k8s部署Django项目的方法步骤
2019/01/14 Python
python实现AES加密和解密
2019/03/27 Python
python GUI实现小球满屏乱跑效果
2019/05/09 Python
意大利香水和化妆品购物网站:Parfimo.it
2019/10/06 全球购物
运动会致辞稿50字
2014/02/04 职场文书
四风问题自我剖析材料
2014/10/07 职场文书
大连导游词
2015/02/12 职场文书
建筑安全员岗位职责
2015/02/15 职场文书
2015年董事长秘书工作总结
2015/07/23 职场文书
2015年度女工工作总结
2015/10/22 职场文书
公司年会晚会开幕词
2019/04/02 职场文书