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 相关文章推荐
Chrome中模态对话框showModalDialog返回值问题的解决方法
May 25 Javascript
js 替换功能函数,用正则表达式解决,js的全部替换
Dec 08 Javascript
jQuery去掉字符串起始和结尾的空格(多种方法实现)
Apr 01 Javascript
jquery插件corner实现圆角边框的方法
Mar 09 Javascript
JavaScript基本语法讲解
Jun 03 Javascript
jquery京东商城双11焦点图多图广告特效代码分享
Sep 06 Javascript
第二章之Bootstrap 页面排版样式
Apr 25 Javascript
jQuery AJAX timeout 超时问题详解
Jun 21 Javascript
js实现消息滚动效果
Jan 18 Javascript
JS中图片压缩的方法小结
Nov 14 Javascript
JavaScript解决浮点数计算不准确问题的方法分析
Jul 09 Javascript
vue.js 使用原生js实现轮播图
Apr 26 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
PHP中怎样保持SESSION不过期 原理及方案介绍
2013/08/08 PHP
PHP函数之日期时间函数date()使用详解
2013/09/09 PHP
PHP递归实现汉诺塔问题的方法示例
2017/11/25 PHP
PHP微信发送推送消息乱码的解决方法
2019/02/28 PHP
Javascript MD4
2006/12/20 Javascript
Save a File Using a File Save Dialog Box
2007/06/18 Javascript
Javascript 自定义类型方法小结
2010/03/02 Javascript
JQuery 绑定select标签的onchange事件,弹出选择的值,并实现跳转、传参
2011/01/06 Javascript
jquery实现excel导出的方法
2013/04/04 Javascript
Js中的onblur和onfocus事件应用介绍
2013/08/27 Javascript
javascript使用switch case实现动态改变超级链接文字及地址
2014/12/16 Javascript
js随机生成26个大小写字母
2016/02/12 Javascript
jquery.serialize() 函数语法及简单实例
2016/07/08 Javascript
分享JavaScript监听全部Ajax请求事件的方法
2016/08/28 Javascript
微信小程序 页面传值详解
2017/03/10 Javascript
jQuery实现的文字逐行向上间歇滚动效果示例
2017/09/06 jQuery
深入理解Node.js中通用基础设计模式
2017/09/19 Javascript
js实现扫雷小程序的示例代码
2017/09/27 Javascript
浅谈vue,angular,react数据双向绑定原理分析
2017/11/28 Javascript
.vue文件 加scoped 样式不起作用的解决方法
2018/05/28 Javascript
浅谈Vue初学之props的驼峰命名
2018/07/19 Javascript
vue实现打印功能的两种方法
2018/09/07 Javascript
javascript设计模式 ? 抽象工厂模式原理与应用实例分析
2020/04/09 Javascript
写一个Vue loading 插件
2020/11/09 Javascript
Python Tkinter实现简易计算器功能
2018/01/30 Python
Python Pandas 如何shuffle(打乱)数据
2019/07/30 Python
解决jupyter notebook import error但是命令提示符import正常的问题
2020/04/15 Python
DRF使用simple JWT身份验证的实现
2021/01/14 Python
可持续未来的时尚基础:Alternative Apparel
2019/05/06 全球购物
Oracle中delete,truncate和drop的区别
2016/05/05 面试题
捐助倡议书范文
2014/04/15 职场文书
中学生运动会口号
2014/06/07 职场文书
参赛口号
2014/06/16 职场文书
优秀教师先进事迹材料
2014/12/15 职场文书
新闻稿格式范文
2015/07/18 职场文书
Python+uiautomator2实现自动刷抖音视频功能
2021/04/29 Python