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 Json Parser修正版
Dec 06 Javascript
Javascript 键盘keyCode键码值表
Dec 24 Javascript
js右下角弹出提示框示例代码
Jan 12 Javascript
基于Node.js实现nodemailer邮件发送
Jan 26 Javascript
jQuery插件实现表格隔行变色及鼠标滑过高亮显示效果代码
Feb 25 Javascript
JS版微信6.0分享接口用法分析
Oct 13 Javascript
Bootstrap框架的学习教程详解(二)
Oct 18 Javascript
bootstrap选项卡使用方法解析
Jan 11 Javascript
Vue2.0 slot分发内容与props验证的方法
Dec 12 Javascript
关于vue面试题汇总
Mar 20 Javascript
快速解决brew安装特定版本flow的问题
May 17 Javascript
Vue3.0中的monorepo管理模式的实现
Oct 14 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
再说下636单管机
2021/03/02 无线电
转PHP手册及PHP编程标准
2006/12/17 PHP
利用PHP生成静态HTML文档的原理
2012/10/29 PHP
jquery 模拟雅虎首页的点击对话框效果
2010/04/11 Javascript
ajax请求get与post的区别总结
2013/11/04 Javascript
js获取表格的行数和列数的方法
2015/10/23 Javascript
AngularJS使用ngMessages进行表单验证
2015/12/27 Javascript
详解Javascript ES6中的箭头函数(Arrow Functions)
2016/08/24 Javascript
jQuery插件HighCharts绘制简单2D折线图效果示例【附demo源码】
2017/03/21 jQuery
postman+json+springmvc测试批量添加实例
2018/03/31 Javascript
详解promise.then,process.nextTick, setTimeout 以及 setImmediate的执行顺序
2018/11/21 Javascript
three.js搭建室内场景教程
2018/12/30 Javascript
vue+koa2实现session、token登陆状态验证的示例
2019/08/30 Javascript
vue动态循环出的多个select出现过的变为disabled(实例代码)
2019/11/10 Javascript
在Django中管理Users和Permissions以及Groups的方法
2015/07/23 Python
Flask框架Flask-Login用法分析
2018/07/23 Python
Python Tkinter模块实现时钟功能应用示例
2018/07/23 Python
使用PyQt5实现图片查看器的示例代码
2020/04/21 Python
Django-imagekit的使用详解
2020/07/06 Python
HTML5 Canvas API中drawImage()方法的使用实例
2016/03/25 HTML / CSS
德国百年厨具品牌WMF美国站:WMF美国
2016/09/12 全球购物
巴基斯坦电子产品购物网站:Home Shopping
2017/09/14 全球购物
俄罗斯运动鞋商店:Sneakerhead
2018/05/10 全球购物
施华洛世奇韩国官网:SWAROVSKI韩国
2018/06/05 全球购物
Rentalcars.com中国:世界上最大的在线汽车租赁服务
2019/08/22 全球购物
Android interview questions
2016/12/25 面试题
办公室经理岗位职责
2014/01/01 职场文书
省级青年文明号申报材料
2014/05/23 职场文书
文明班集体申报材料
2014/05/23 职场文书
新农村建设汇报材料
2014/08/15 职场文书
党的群众路线教育实践活动个人对照检查材料(教师)
2014/11/04 职场文书
2016自主招生校长推荐信范文
2015/03/23 职场文书
2015年大学团支部工作总结
2015/05/13 职场文书
神秘岛读书笔记
2015/07/01 职场文书
小学2016年第十八届推普周活动总结
2016/04/05 职场文书
使用vuex-persistedstate本地存储vuex
2022/04/29 Vue.js