Heim  >  Fragen und Antworten  >  Hauptteil

Ist die Effizienz des JS-Ersatzes und des Hinzufügens von Objektmitgliedern gleich?

Wie bereits erwähnt, gibt es zwei Beispiele (Sie können sich selbst andere Beispiele vorstellen):

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

Wer ist effizienter?

曾经蜡笔没有小新曾经蜡笔没有小新2708 Tage vor688

Antworte allen(3)Ich werde antworten

  • 为情所困

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

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

    那么 delete 有啥用呢?

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

    Antwort
    0
  • 仅有的幸福

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

    肯定是第一种快啊。

    delete a.a 是性能杀手。

    我在 前端程序员应该懂点 V8 知识 讲座里面有讲到。

    Antwort
    0
  • 阿神

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

    赞同@边城 的观点

    Antwort
    0
  • StornierenAntwort