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 相关文章推荐
ASP.NET jQuery 实例14 在ASP.NET form中校验时间范围
Feb 03 Javascript
JS getAttribute和setAttribute(取得和设置属性)的使用介绍
Jul 10 Javascript
浅析AngularJS中的生命周期和延迟处理
Jun 18 Javascript
js实现input框文字动态变换显示效果
Aug 19 Javascript
基于原生js淡入淡出函数封装(兼容IE)
Oct 20 Javascript
canvas滤镜效果实现代码
Feb 06 Javascript
JS实现页面打印功能
Mar 16 Javascript
使用 Node.js 模拟滑动拼图验证码操作的示例代码
Nov 02 Javascript
Vue表单输入绑定的示例代码
Nov 01 Javascript
使用layer弹窗,制作编辑User信息页面的方法
Sep 27 Javascript
JavaScript继承的三种方法实例
May 12 Javascript
Vue-Element-Admin集成自己的接口实现登录跳转
Jun 23 Vue.js
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框架源码分析之创建controller代码
2011/06/28 PHP
php使用str_shuffle()函数生成随机字符串的方法分析
2017/02/17 PHP
PHP递归实现文件夹的复制、删除、查看大小操作示例
2017/08/11 PHP
详解php与ethereum客户端交互
2018/04/28 PHP
PHP实现的超长文本分页显示功能示例
2018/06/04 PHP
php 中phar包的使用教程详解
2018/10/26 PHP
做网页的一些技巧(续)
2007/02/01 Javascript
doctype后如何获得body.clientHeight的方法
2007/07/11 Javascript
使用jquery mobile做幻灯播放效果实现步骤
2013/01/04 Javascript
JavaScript创建一个欢迎cookie弹出窗实现代码
2013/03/15 Javascript
在JavaScript里嵌入大量字符串常量的实现方法
2013/07/07 Javascript
浏览器窗口加载和大小改变事件示例
2014/02/27 Javascript
JS字符串拼接在ie中都报错的解决方法
2014/03/27 Javascript
js实现简单的验证码
2015/12/25 Javascript
微信小程序 引入es6 promise
2017/04/12 Javascript
windows下更新npm和node的方法
2017/11/30 Javascript
微信小程使用swiper组件实现图片轮播切换显示功能【附源码下载】
2017/12/12 Javascript
angular4 JavaScript内存溢出问题
2018/03/06 Javascript
vue+webpack模拟后台数据的示例代码
2018/07/26 Javascript
使用canvas实现一个vue弹幕组件功能
2018/11/30 Javascript
layui树形菜单动态遍历的例子
2019/09/23 Javascript
JS数组及对象遍历方法代码汇总
2020/06/16 Javascript
Python set集合类型操作总结
2014/11/07 Python
视觉直观感受若干常用排序算法
2017/04/13 Python
Python实现加载及解析properties配置文件的方法
2018/03/29 Python
用Python实现大文本文件切割的方法
2019/01/12 Python
HTML5+CSS3网页加载进度条的实现,下载进度条的代码实例
2016/12/30 HTML / CSS
What is view? why do we have view?
2012/06/22 面试题
演讲比赛获奖感言
2014/02/02 职场文书
年终奖发放方案
2014/06/02 职场文书
在职证明书模板
2015/06/15 职场文书
幼儿园家长心得体会
2016/01/21 职场文书
什么是求职信?求职信应包含哪些内容?
2019/08/14 职场文书
Win11安装受阻怎么办? Windows11安装问题与解决方案汇总
2021/11/21 数码科技
java executor包参数处理功能 
2022/02/15 Java/Android
Pygame游戏开发之太空射击实战敌人精灵篇
2022/08/05 Python