资讯专栏INFORMATION COLUMN

js对象delete使用

superPershing / 3002人阅读

摘要:如下设置属性删除属性删除属性检查结果只能删除自有属性,不会影响原型链上的属性如下可以看到原型链上的属性并没有被删除。注书上写操作符要谨慎使用,因为大多数现代引擎会针对构造函数创建的实例进行性能优化,而会破坏这种优化。不过目前我还没有用到

今天遇到一个问题,想要将对象置空,我用的方法是让对象为{},如下:

后来又用到了第二种方法:delete

1、它可以从一个对象中彻底删除一个属性(整个键-值对:key-value都不存在了),如下:

而如果只是把某个属性设置为defined的话,这个属性(key)会依然存在,如下:

2、如果属性是自有属性且不能被删除,delete会返回false,其他情况都会返回true。如下:
(1)设置属性

(2)删除属性(configurable:false)

删除属性(configurable:true)

(3)检查结果:

3、delete只能删除自有属性,不会影响原型链上的属性:如下

可以看到原型链上的属性并没有被删除。

注:书上写delete操作符要谨慎使用,因为大多数现代js引擎会针对构造函数创建的实例进行性能优化,而delete会破坏这种优化。
不过目前我还没有用到~~~~

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/88237.html

相关文章

  • JS 中的内部属性与 delete 操作符

    摘要:数据属性数据属性指包含一个数据值的位置,可在该位置读取或写入值,该属性有个供述其行为的特性表示能否使用操作符删除从而重新定义,或能否修改为访问器属性。如中的属性通过我们能够获取到个内部属性,控制着变量或属性是否可被删除。 本文正式地址:http://www.xiabingbao.com/javascript/2015/08/03/javascript-delete-conf... 在...

    luckyw 评论0 收藏0
  • JavaScript小细节点罗列(1)

    摘要:一旦属性引用结束了,这个新创建的对象就会被销毁。回到属性访问表达式,如果表达式后跟随和标识符,就会查找这个标识符所指定的属性的值没并将其作为整个表达式返回的值。而且运算符只能删除自有属性,不能删除继承属性。真真真假真真真真真假真假未完待续 属性访问表达式 众所周知,JavaScript为属性的访问定义了两种语法方式: 表达式.标识符 表达式(指定对象),标识符(指定需要访问的属性的名称...

    I_Am 评论0 收藏0
  • 为什么说在 JS 中要避免使用 delete

    摘要:在中操作符用于删除对象的某个属性。在运行时会创建隐藏类,这些类附加到每个对象上,以跟踪其形状布局。可以很明显地得出一个结论,设置为。 在 JavaScript 中 delete 操作符用于删除对象的某个属性。例如 const person = { name: sudada, gender: female } delete person.name console.lo...

    sevi_stuo 评论0 收藏0
  • JS严格模式

    摘要:整理一下严格模式中不同于一般模式的地方。以上代码在非严格模式中显示结果为,只能访问最后一个同名参数。非严格模式严格模式不允许使用中声明的的变量或方法作用域仅限内部,不再会被创建到其所在的上下文中。在严格模式下始终指向指定的值,包括和。 整理一下JS严格模式中不同于一般模式的地方。 启用严格模式 有两种方式启用严格模式 js文件第一行代码为use strict; 方法内第一行代码为us...

    Harriet666 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<