js替换和添加对象成员的效率是一样的吗?

如题,比如有这么两个例子(大家可以自行想象其它例子):

// 替换的例子
let a = {'a': 123, 'b': 234, 'c': 345}
let tmp = {'a': 'qwe'}
a = {...a, tmp}
// 删除再添加的例子
let a = {'a': 123, 'b': 234, 'c': 345}
let tmp = {'a': 'qwe'}
delete a.a
a = {...a, tmp}

请问谁的效率要高些?

阅读 2.8k
3 个回答

clipboard.png

delete 慢也就不说了,关键是它还不会直接释放内存(MDN 文档一开始就提到了这点)。所以你的情况直接替换,不用想太多。

那么 delete 有啥用呢?

目前我能想到的,就是在继承的情况下可用。比如某个对象的原型链上有属性 a,它自己也定义了属性 a,然后由于某些原因不再需要它自身的属性 a,只需要使用原型链上的……那就把自己这个属性删掉。但即使这应用,也是很难碰到实际应用场景的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏