JavaScript中对象property的删除方法介绍
作者:junjie 发布时间:2024-06-05 09:29:09
标签:JavaScript,对象,property,删除
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错误。


猜你喜欢
- 什么是SQL?SQL是一种用于操作数据库的语言。SQL是用于所有数据库的基本语言。不同数据库之间存在较小的语法更改,但基本的SQL语法基本保
- 前言众所周知,MySQL的存储引擎有MyISAM和InnoDB,锁粒度分别是表锁和行锁。后者的出现从某种程度上是弥补前者的不足,比如:MyI
- 事件循环(Event Loop),是每个JS开发者都会接触到的概念,但是刚接触时可能会存在各种疑惑。众所周知,JS是单线程的,即同一时间只能
- 今天下午,低一度博客受到攻击了,出现了大约一个小时的访问异常。庆幸的是,这帮无耻歹徒没能成功获取我的Access数据库,而只是象征性地给我注
- Python3将数据保存为txt文件的方法,具体内容如下所示:f = open("data/model_Weight.txt&qu
- 1:创建用户 create temporary tablespace user_temp tempfile 'D:\app\topw
- 在单个HTML元素上利用CSS2.1实现拥有3张背景图片和2张内容图效果,或者多重边框的效果。这种渐进增强的方式适用于所有支持CSS2.1伪
- 前言Python 思想:“一切都是对象!”,最近发现python3和python2中print的用法有很多不同,python3中需要使用括号
- 如果想要在有序数据中进行查找想要的数据,二分查找法就个好方法,它可以大大缩短了搜索时间,是一种常见的查找方法。二分查找很好写,却很难写对,下
- 背景node.js,有人称之为运行在服务器端的JavaScript。以往我们使用JavaScript时,都是依赖后端查询数据库并返回数据,而
- (1)Flush的内容至少要有256字节经过反复的测试,我得出一个结论。就是flush的内容至少要有256字节。也就是只有编译产生了至少25
- 在windows平台上使用pyhton编写语音识别程序需要用到speech模块,speech模块支持的主要功能有:文本合成语音,将键盘输入的
- 这篇文章主要介绍了python cv2在验证码识别中应用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
- Pytorch中torch.nn.Softmax的dim参数使用含义涉及到多维tensor时,对softmax的参数dim总是很迷,下面用一
- 一、new做了哪些事先看看new的使用场景:// 1、创建一个构造函数function Vehicle(name, price) { &nb
- 1.背景最近使用Pytest中的fixture和conftest时,遇到需要在conftest中的setup和teardown方法里传递参数
- 单例模式的概念单例模式很容易记住。就像名称一样,它只能提供对象的单一实例,保证一个类只有一个实例,并提供一个全局访问该实例的方法。在第一次调
- 之前我们已经安装了lnmp的环境,现在让我们来安装phpmyadmin。跟前一样,yum默认的库里是没有phpmyadmin的,我们需要从e
- 本文实例主要是实现爬取一个网页上的图片地址,具体如下。读取一个网页的源代码:import urllib.requestdef getHtml
- 手里有个老项目是基于element admin框架下的,之前写的时候没考虑到要打包成桌面端,后期需要打包成客户端,然后就开始了一些列版本操作