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查看对象功能代码
Apr 25 Javascript
初步使用Node连接Mysql数据库
Mar 03 Javascript
js实现纯前端的图片预览
Apr 27 Javascript
JavaScript函数柯里化详解
Apr 29 Javascript
详解VUE 定义全局变量的几种实现方式
Jun 01 Javascript
Vue from-validate 表单验证的示例代码
Sep 26 Javascript
微信小程序中button组件的边框设置的实例详解
Sep 27 Javascript
chorme 浏览器记住密码后input黄色背景处理方法(两种)
Nov 22 Javascript
JS 中document.write()的用法和清空的原因浅析
Dec 04 Javascript
如何通过setTimeout理解JS运行机制详解
Mar 23 Javascript
vue项目打包后上传至GitHub并实现github-pages的预览
May 06 Javascript
详解vuejs中执行npm run dev出现页面cannot GET/问题
Apr 26 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 模拟POST|GET操作实现代码
2010/07/20 PHP
开启CURL扩展,让服务器支持PHP curl函数(远程采集)
2011/03/19 PHP
基于Snoopy的PHP近似完美获取网站编码的代码
2011/10/23 PHP
在yii中新增一个用户验证的方法详解
2013/06/20 PHP
PHP仿微信发红包领红包效果
2016/10/30 PHP
js中settimeout方法加参数的使用实例
2014/02/27 Javascript
js动态删除div元素基本思路及实现代码
2014/05/08 Javascript
JavaScript跨域方法汇总
2014/10/16 Javascript
JavaScript使用shift方法移除素组第一个元素实例分析
2015/04/06 Javascript
jQuery实现自动输入email、时间和域名的方法
2016/08/24 Javascript
JS组件系列之使用HTML标签的data属性初始化JS组件
2016/09/14 Javascript
JS排序算法之冒泡排序,选择排序与插入排序实例分析
2017/12/13 Javascript
Express之托管静态文件的方法
2018/06/01 Javascript
基于nodejs的雪碧图制作工具的示例代码
2018/11/05 NodeJs
js实现web调用摄像头 js截取视频画面
2019/04/21 Javascript
[06:16]DOTA2守卫传承者——职业选手谈心路历程
2015/02/26 DOTA
Python实现的多线程端口扫描工具分享
2015/01/21 Python
Python中pygame安装方法图文详解
2015/11/11 Python
python实现浪漫的烟花秀
2019/01/30 Python
详解python实现数据归一化处理的方式:(0,1)标准化
2019/07/17 Python
python中property和setter装饰器用法
2019/12/19 Python
python 基于opencv去除图片阴影
2021/01/26 Python
GE设备配件:GE Appliance Parts(家电零件、配件和滤水器)
2018/11/28 全球购物
opencv实现图像几何变换
2021/03/24 Python
师范生自我鉴定范文
2013/10/05 职场文书
财政局长自荐信范文
2013/12/22 职场文书
班组长工作职责
2013/12/25 职场文书
小学教师师德感言
2014/02/10 职场文书
小学生安全责任书
2014/07/25 职场文书
小学生国庆65周年演讲稿范文(2篇)
2014/09/21 职场文书
2014年艾滋病防治工作总结
2014/12/10 职场文书
我们的节日重阳节活动总结
2015/03/24 职场文书
看雷锋电影观后感
2015/06/10 职场文书
金砖之国观后感
2015/06/11 职场文书
2015年小学总务工作总结
2015/07/21 职场文书
财务人员入职担保书
2015/09/22 职场文书