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 相关文章推荐
javascript flash下fromCharCode和charCodeAt方法使用说明
Jan 12 Javascript
JavaScript实现动态增加文件域表单
Feb 12 Javascript
jQuery 加上最后自己的验证
Nov 04 Javascript
JavaScript 设计模式 富有表现力的Javascript(一)
May 26 Javascript
通过JQuery实现win8一样酷炫的动态磁贴效果(示例代码)
Jul 13 Javascript
JS实现点击文字对应DIV层不停闪动效果的方法
Mar 02 Javascript
javascript异步处理工作机制详解
Apr 13 Javascript
jquery  实现轮播图详解及实例代码
Oct 12 Javascript
浅谈Javascript事件对象
Feb 05 Javascript
微信小程序实现MUI数字输入框效果
Jan 31 Javascript
小程序如何使用分包加载的实现方法
May 22 Javascript
从零使用TypeScript开发项目打包发布到npm
Feb 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
PHP采用自定义函数实现遍历目录下所有文件的方法
2014/08/19 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
JavaScript 中的事件教程
2007/04/05 Javascript
javascript window对象属性整理
2009/10/24 Javascript
探索Emberjs制作一个简单的Todo应用
2012/11/07 Javascript
通过JS自动隐藏手机浏览器的地址栏实现原理与代码
2013/01/02 Javascript
jquery 提示信息显示后自动消失的具体实现
2013/12/18 Javascript
window.location 对象所包含的属性
2014/10/10 Javascript
使用js画图之正弦曲线
2015/01/12 Javascript
浅谈Javascript 数组与字典
2015/01/29 Javascript
javascript中获取元素标签中间的内容的实现方法
2016/10/08 Javascript
Node.js的环境安装配置(使用nvm方式)
2016/10/11 Javascript
利用jquery获取select下拉框的值
2016/11/23 Javascript
jquery二级目录选中当前页的css样式
2016/12/08 Javascript
微信小程序 本地存储及登录页面处理实例详解
2017/01/11 Javascript
浅谈js中的变量名和函数名重名
2017/02/13 Javascript
jQuery中 bind的用法简单介绍
2017/02/13 Javascript
vue 里面使用axios 和封装的示例代码
2017/09/01 Javascript
vue2.0实现音乐/视频播放进度条组件
2018/06/06 Javascript
深入浅析Vue.js 中的 v-for 列表渲染指令
2018/11/19 Javascript
使用ThinkJs搭建微信中控服务的实现方法
2019/08/08 Javascript
JS函数基本定义与用法示例
2020/01/15 Javascript
python中list常用操作实例详解
2015/06/03 Python
python的else子句使用指南
2016/02/27 Python
python 实现登录网页的操作方法
2018/05/11 Python
如何在Django配置文件里配置session链接
2019/08/06 Python
opencv 图像滤波(均值,方框,高斯,中值)
2020/07/08 Python
乡镇干部先进事迹材料
2014/02/03 职场文书
团队精神口号
2014/06/06 职场文书
小学美术兴趣小组活动总结
2014/07/07 职场文书
村党的群众路线教育实践活动总结材料
2014/10/31 职场文书
销售员岗位职责范本
2015/04/11 职场文书
亮剑观后感300字
2015/06/05 职场文书
出纳2015年度工作总结范文
2015/10/14 职场文书
初中生入团申请书范文(五篇)
2019/10/16 职场文书
一条慢SQL语句引发的改造之路
2022/03/16 MySQL