JavaScript中对象property的删除方法介绍

作者:junjie 时间:2024-06-05 09:29:09 

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,对象,property,删除
0
投稿

猜你喜欢

  • Django 对象关系映射(ORM)源码详解

    2021-08-15 01:54:00
  • python3 打开外部程序及关闭的示例

    2022-06-16 22:23:15
  • WEB2.0网页制作标准教程(5)head区的其他设置

    2007-11-13 13:28:00
  • JScript 运算符

    2007-08-22 16:22:00
  • 在Python中调用ggplot的三种方法

    2023-08-23 00:40:58
  • php下关于Cannot use a scalar value as an array的解决办法

    2023-10-29 22:29:23
  • python 产生token及token验证的方法

    2023-05-19 17:25:13
  • Access2K中的查询分析器

    2008-11-20 16:40:00
  • 简单上手Python中装饰器的使用

    2023-06-20 19:20:06
  • python批量复制图片到另一个文件夹

    2021-04-30 09:36:50
  • python 生成正态分布数据,并绘图和解析

    2022-02-11 07:14:00
  • Python股票数据可视化代码详解

    2021-11-29 15:48:47
  • JavaScript闭包与作用域链实例分析

    2024-04-10 10:48:55
  • 跟老齐学Python之字典,你还记得吗?

    2022-09-07 20:22:53
  • MySQL高级特性——数据表分区的概念及机制详解

    2024-01-28 12:30:28
  • Python实用工具FuckIt.py介绍

    2022-11-25 01:41:26
  • SQL Server中的文件和文件组介绍

    2024-01-14 06:57:45
  • Python读取文件内容的三种常用方式及效率比较

    2023-08-29 23:46:00
  • java JSP开发之Spring中Bean的使用

    2023-06-16 07:35:08
  • 面向对象的 Javascript

    2013-07-21 11:57:22
  • asp之家 网络编程 m.aspxhome.com