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 相关文章推荐
js prototype截取字符串函数
Apr 01 Javascript
JQuery验证jsp页面属性是否为空(实例代码)
Nov 08 Javascript
解析Javascript中大括号“{}”的多义性
Dec 02 Javascript
整理Javascript函数学习笔记
Dec 01 Javascript
json对象转为字符串,当做参数传递时加密解密的实现方法
Jun 29 Javascript
js 性能优化之算法和流程控制
Feb 15 Javascript
vue获取DOM元素并设置属性的两种实现方法
Sep 30 Javascript
Bootstrap Table 搜索框和查询功能
Nov 30 Javascript
微信小程序chooseImage的用法(从本地相册选择图片或使用相机拍照)
Aug 22 Javascript
JavaScript学习笔记之基于定时器实现图片无缝滚动功能详解
Jan 09 Javascript
layer插件实现在弹出层中弹出一警告提示并关闭弹出层的方法
Sep 24 Javascript
react实现复选框全选和反选组件效果
Aug 25 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与jquery设置和读取cookies
2013/08/08 PHP
php实现文件下载代码分享
2014/08/19 PHP
PHP处理会话函数大总结
2015/08/05 PHP
详解php的socket通信
2015/08/11 PHP
Symfony2函数用法实例分析
2016/03/18 PHP
理解 JavaScript 预解析
2009/10/25 Javascript
5个最佳的Javascript日期处理类库分享
2012/04/15 Javascript
jQuery仿Flash上下翻动的中英文导航菜单实例
2015/03/10 Javascript
jQuery时间日期三级联动(推荐)
2016/11/27 Javascript
工厂模式在JS中的实践
2017/01/18 Javascript
性能优化之代码优化页面加载速度
2017/03/01 Javascript
jq checkbox 的全选并ajax传参的实例
2017/04/01 Javascript
jquery.rotate.js实现可选抽奖次数和中奖内容的转盘抽奖代码
2017/08/23 jQuery
jQuery选择器之子元素选择器详解
2017/09/18 jQuery
详解在Node.js中发起HTTP请求的5种方法
2019/01/10 Javascript
vue cli3.0结合echarts3.0与地图的使用方法示例
2019/03/26 Javascript
微信小程序的tab选项卡的实现效果
2019/05/15 Javascript
ES6基础之 Promise 对象用法实例详解
2019/08/22 Javascript
详解Angular cli配置过程记录
2019/11/07 Javascript
python 遍历列表提取下标和值的实例
2018/12/25 Python
Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]
2020/02/13 Python
Python pandas 列转行操作详解(类似hive中explode方法)
2020/05/18 Python
PyCharm2020最新激活码+激活码补丁(亲测最新版PyCharm2020.2激活成功)
2020/11/25 Python
美国领先的在线旅游网站:Orbitz
2018/11/05 全球购物
Booking.com德国:预订最好的酒店和住宿
2020/02/16 全球购物
《赵州桥》教学反思
2014/02/17 职场文书
愚人节活动策划方案
2014/03/11 职场文书
部门年终奖分配方案
2014/05/07 职场文书
如何写股份合作协议书
2014/09/11 职场文书
党的群众路线教育实践活动个人对照检查材料范文
2014/09/25 职场文书
党员学习新党章思想汇报
2014/10/25 职场文书
志愿者事迹材料
2014/12/26 职场文书
搭讪开场白台词大全
2015/05/28 职场文书
基层党建工作简报
2015/07/21 职场文书
酒吧七夕情人节宣传语
2015/11/24 职场文书
Python如何配置环境变量详解
2021/05/18 Python