为了账号安全,请及时绑定邮箱和手机立即绑定

JS Object的delete方法用多了有什么影响?

JS Object的delete方法用多了有什么影响?

慕森王 2019-02-19 15:55:18
最近用的delete方法比较多,总感觉奇奇怪怪的.除了影响原数组以为,delete还有什么坏处吗?let a = true;let obj = {   name: 'xiaobi',   age: 22}if(a === true) { delete obj.age }console.log(obj);// {name: 'xiaobi'}
查看完整描述

2 回答

?
交互式爱情

TA贡献1712条经验 获得超3个赞

尽量不要用delete关键字。用 Reflect.deleteProperty(object, key),看考官方用法

查看完整回答
反对 回复 2019-02-19
?
缥缈止盈

TA贡献2041条经验 获得超4个赞

  • 如果你试图删除的属性不存在,那么delete将不会起任何作用,但仍会返回true

  • 如果对象的原型链上有一个与待删除属性同名的属性,那么删除属性之后,对象会使用原型链上的那个属性(也就是说,delete操作只会在自身的属性上起作用)

  • 任何使用 var 声明的属性不能从全局作用域或函数的作用域中删除。
    这样的话,delete操作不能删除任何在全局作用域中的函数(无论这个函数是来自于函数声明或函数表达式)
    除了在全局作用域中的函数不能被删除,在对象(object)中的函数是能够用delete操作删除的。

  • 任何用let或const声明的属性不能够从它被声明的作用域中删除。

  • 不可设置的(Non-configurable)属性不能被移除。这意味着像Math, Array, Object内置对象的属性以及使用Object.defineProperty()方法设置为不可设置的属性不能被删除。


查看完整回答
反对 回复 2019-02-19
  • 2 回答
  • 0 关注
  • 1119 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信