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 相关文章推荐
QQ登录简单实现代码
Mar 09 Javascript
得到form下的所有的input的js代码
Nov 07 Javascript
javascript设置金额样式转换保留两位小数示例代码
Dec 04 Javascript
如何用javascript计算文本框还能输入多少个字符
Jul 29 Javascript
详解JS中Array对象扩展与String对象扩展
Jan 07 Javascript
关于angularJs指令的Scope(作用域)介绍
Oct 25 Javascript
微信小程序 配置文件详细介绍
Dec 14 Javascript
详解Python中logging日志模块在多进程环境下的使用
Dec 26 Javascript
jquery实现一个全局计时器(商城可用)
Jun 30 jQuery
深入理解jquery的$.extend()、$.fn和$.fn.extend()
Jul 08 jQuery
原生js实现日历效果
Mar 02 Javascript
jquery实现淡入淡出轮播图效果
Dec 13 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
Yii结合CKEditor实现图片上传功能
2014/06/13 PHP
PHP实现获取域名的方法小结
2014/11/05 PHP
PHP的openssl加密扩展使用小结(推荐)
2016/07/18 PHP
php实现HTML实体编号与非ASCII字符串相互转换类实例
2016/11/02 PHP
PHP命令空间namespace及use的用法小结
2017/11/27 PHP
JavaScript页面刷新与弹出窗口问题的解决方法
2010/03/02 Javascript
jquery multiSelect 多选下拉框
2010/07/09 Javascript
boxy基于jquery的弹出层对话框插件扩展应用 弹出层选择器
2010/11/21 Javascript
jQuery仿Excel表格编辑功能的实现代码
2013/05/01 Javascript
jquery触发a标签跳转事件示例代码
2013/07/21 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
2013/11/06 Javascript
javascript操作ul中li的方法
2015/05/14 Javascript
Angular发布1.5正式版,专注于向Angular 2的过渡
2016/02/18 Javascript
通过jquery-ui中的sortable来实现拖拽排序的简单实例
2016/05/24 Javascript
js html5 css俄罗斯方块游戏再现
2016/10/17 Javascript
Vue AST源码解析第一篇
2017/07/19 Javascript
Vue单文件组件基础模板小结
2017/08/10 Javascript
JavaScript中常见内置函数用法示例
2018/05/14 Javascript
js实现随机点名
2021/01/19 Javascript
Python实现的txt文件去重功能示例
2018/07/07 Python
解决python3捕获cx_oracle抛出的异常错误问题
2018/10/18 Python
Python多线程爬取豆瓣影评API接口
2019/10/22 Python
TensorFlow dataset.shuffle、batch、repeat的使用详解
2020/01/21 Python
python3 实现口罩抽签的功能
2020/03/11 Python
Python Json数据文件操作原理解析
2020/05/09 Python
python 爬取腾讯视频评论的实现步骤
2021/02/18 Python
HTML5实现表单自动验证功能实例代码
2017/01/11 HTML / CSS
HTML5 语义化结构化规范化
2008/10/17 HTML / CSS
古驰英国官网:GUCCI英国
2020/03/07 全球购物
自考生自我鉴定范文
2013/10/01 职场文书
工程地质勘察专业大学生求职信
2013/10/13 职场文书
女方回门宴答谢词
2014/01/14 职场文书
《梅花魂》教学反思
2014/04/30 职场文书
机关作风建设心得体会
2014/10/22 职场文书
质检员工作总结2015
2015/04/25 职场文书
工作简报范文
2015/07/21 职场文书