javascript - js替換和添加物件成員的效率是一樣的嗎?
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-06-12 09:28:17
0
3
739

如題,例如有這麼兩個例子(大家可以自行想像其它例子):

// 替换的例子
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}

請問誰的效率要高?

曾经蜡笔没有小新
曾经蜡笔没有小新

全部回覆(3)
为情所困

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

那麼 delete 有啥用呢?

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

仅有的幸福

一定是第一種快啊。

delete a.a 是性能殺手。

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

阿神

同意@邊城 的看法

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板