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 实现的自定义对话框
Mar 24 Javascript
javascript 对象比较实现代码
Apr 27 Javascript
javascript创建createXmlHttpRequest对象示例代码
Feb 10 Javascript
JQuery遍历DOM节点的方法
Jun 11 Javascript
谈一谈JS消息机制和事件机制的理解
Apr 14 Javascript
Bootstrap3学习笔记(三)之表格
May 20 Javascript
JavaScript实现复制文章自动添加版权
Aug 02 Javascript
Vue 让元素抖动/摆动起来的实现代码
May 31 Javascript
JavaScript原型对象、构造函数和实例对象功能与用法详解
Aug 04 Javascript
Vue keepAlive 数据缓存工具实现返回上一个页面浏览的位置
May 10 Javascript
Vue实现input宽度随文字长度自适应操作
Jul 29 Javascript
antd日期选择器禁止选择当天之前的时间操作
Oct 29 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 number_format() 函数定义和用法
2012/06/01 PHP
PHP获取客户端及服务器端IP的封装类
2016/07/21 PHP
PHP实现图的邻接矩阵表示及几种简单遍历算法分析
2017/11/24 PHP
Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解
2019/12/04 PHP
js的逻辑运算符 ||
2010/05/31 Javascript
子窗体与父窗体传值示例js代码
2013/08/01 Javascript
Jquery原生态实现表格header头随滚动条滚动而滚动
2014/03/18 Javascript
JS使用oumousemove和oumouseout动态改变图片显示的方法
2015/03/31 Javascript
CSS+JS实现点击文字弹出定时自动关闭DIV层菜单的方法
2015/05/12 Javascript
Ajax清除浏览器js、css、图片缓存的方法
2015/08/06 Javascript
JavaScript学习笔记整理_简单实现枚举类型,扑克牌应用
2016/09/19 Javascript
微信小程序开发经验总结(推荐)
2017/01/11 Javascript
JavaScript如何一次性展示几万条数据
2017/03/30 Javascript
JS实现手写parseInt的方法示例
2017/09/24 Javascript
Vue项目中添加锁屏功能实现思路
2018/06/29 Javascript
vue 实现微信浮标效果
2019/09/01 Javascript
Layui数据表格跳转到指定页的实现方法
2019/09/05 Javascript
Vue 实现可视化拖拽页面编辑器
2021/02/01 Vue.js
py中的目录与文件判别代码
2008/07/16 Python
Python实现的使用telnet登陆聊天室实例
2015/06/17 Python
基于numpy.random.randn()与rand()的区别详解
2018/04/17 Python
浅析Python四种数据类型
2018/09/26 Python
使用python去除图片白色像素的实例
2019/12/12 Python
CSS3教程:background-clip和background-origin
2008/10/17 HTML / CSS
台湾良兴购物网:EcLife
2019/12/01 全球购物
公司周年庆典邀请函
2014/01/12 职场文书
素食餐饮项目创业计划书
2014/02/02 职场文书
大专学生求职自荐信
2014/07/06 职场文书
大一新生期末自我评价
2014/09/12 职场文书
工作批评与自我批评范文
2014/10/16 职场文书
财务整改报告范文
2014/11/05 职场文书
报名委托书
2015/01/29 职场文书
Vue中使用import进行路由懒加载的原理分析
2022/04/01 Vue.js
DE1107机评
2022/04/05 无线电
vue elementUI批量上传文件
2022/04/26 Vue.js
单机多实例部署 MySQL8.0.20
2022/05/15 MySQL