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 获取事件对象的注意点
Jul 29 Javascript
JavaScript在IE和FF下的兼容性问题
May 19 Javascript
JQuery插件Quicksand实现超炫的动画洗牌效果
May 03 Javascript
JavaScript实现Flash炫光波动特效
May 14 Javascript
javascript常用的方法分享
Jul 01 Javascript
Javascript中的Prototype到底是什么
Feb 16 Javascript
基于VUE实现的九宫格抽奖功能
Sep 30 Javascript
JavaScript碎片—函数闭包(模拟面向对象)
Mar 13 Javascript
微信小程序调用微信支付接口的实现方法
Apr 29 Javascript
JavaScript实现留言板案例
Mar 17 Javascript
vant 时间选择器--开始时间和结束时间实例
Nov 04 Javascript
vue 解决IOS10低版本白屏的问题
Nov 17 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 文件上传后缀名与文件类型对照表(几乎涵盖所有文件)
2010/05/16 PHP
PHP使用Mysql事务实例解析
2014/09/08 PHP
[原创]php实现子字符串位置相互对调互换的方法
2016/06/02 PHP
由php中字符offset特征造成的绕过漏洞详解
2017/07/07 PHP
js 字符串操作函数
2009/07/25 Javascript
JS中Iframe之间传值的方法
2013/03/11 Javascript
extjs_02_grid显示本地数据、显示跨域数据
2014/06/23 Javascript
jQuery实现网站添加高亮突出显示效果的方法
2015/06/26 Javascript
浅谈jQuery中height与width
2015/07/06 Javascript
JavaScript使用encodeURI()和decodeURI()获取字符串值的方法
2015/08/04 Javascript
原生JS实现仿淘宝网左侧商品分类菜单效果代码
2015/09/10 Javascript
js实现跨域的多种方法
2015/12/25 Javascript
jQuery使用ajax跨域获取数据的简单实例
2016/05/18 Javascript
在JavaScript中对HTML进行反转义详解
2016/05/18 Javascript
温习Javascript基础语法之词法结构
2016/05/31 Javascript
利用vue-router实现二级菜单内容转换
2016/11/30 Javascript
微信小程序使用npm支持踩坑
2018/11/07 Javascript
VuePress 静态网站生成方法步骤
2019/02/14 Javascript
Seajs源码详解分析
2019/04/02 Javascript
vue基于v-charts封装双向条形图的实现代码
2019/12/09 Javascript
JS script脚本中async和defer区别详解
2020/06/24 Javascript
Vue 实现对quill-editor组件中的工具栏添加title
2020/08/03 Javascript
electron踩坑之remote of undefined的解决
2020/10/06 Javascript
当当网官方旗舰店:中国图书销售夺金品牌
2018/04/02 全球购物
离职证明标准格式
2014/09/15 职场文书
小学教师师德师风个人整改措施
2014/09/18 职场文书
2014年最新个人对照检查材料范文
2014/09/25 职场文书
入股合作协议书
2014/10/12 职场文书
志愿者个人总结
2015/03/03 职场文书
学校重阳节活动总结
2015/03/24 职场文书
兴趣班停课通知
2015/04/24 职场文书
捐书仪式主持词
2015/07/04 职场文书
医院消毒隔离制度
2015/08/05 职场文书
《蚂蚁和蝈蝈》教学反思
2016/02/22 职场文书
redis实现共同好友的思路详解
2021/05/26 Redis
Redis特殊数据类型Geospatial地理空间
2022/06/01 Redis