首頁  >  問答  >  主體

javascript - 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}

請問誰的效率要高?

曾经蜡笔没有小新曾经蜡笔没有小新2708 天前687

全部回覆(3)我來回復

  • 为情所困

    为情所困2017-06-12 09:30:17

    delete 慢也就不說了,關鍵是它還不會直接釋放記憶體(MDN 文件一開始就提到了這點)。所以你的狀況直接替換,不用想太多。

    那麼 delete 有啥用呢?

    目前我能想到的,就是在繼承的情況下可用。例如某個物件的原型鏈上有屬性a,它自己也定義了屬性a,然後因為某些原因不再需要它自己的屬性a,只需要使用原型鏈上的…那就把自己這個屬性刪掉。但即使這應用,也是很難碰到實際應用場景的。

    回覆
    0
  • 仅有的幸福

    仅有的幸福2017-06-12 09:30:17

    一定是第一種快啊。

    delete a.a 是性能殺手。

    我在 前端程式設計師應該懂點 V8 知識 講座裡面有講到。

    回覆
    0
  • 阿神

    阿神2017-06-12 09:30:17

    同意@邊城 的看法

    回覆
    0
  • 取消回覆