【发布时间】:2020-08-16 15:07:36
【问题描述】:
在 Javascript 中,假设我有两个对象 x 和 y。 y 通过解构是 x 的子集。如果我将其中一个对象多次传递给另一个函数,性能/内存影响是什么?最初我认为 y 因为它包含较少的数据,但在 Javascript 中,对象是通过引用传递的 - 所以我是否正确地假设任何一个对象都会影响我正在调用的函数的内存?
【问题讨论】:
-
JavaScript 是按值调用,更好地描述为按对象共享调用。这些值恰好是非原始类型的“引用”(实现细节)。因此,所有对象都需要相同数量的(无关紧要的)时间来传递作为参数;不需要“复制”或额外的空间。
-
@user2864740 解构数组和对象的目的仅仅是确保代码简洁和职责分离(即不使用不需要的函数/变量)吗?
-
这绝对是一个用途,是的。此外,由于重组(?)(到一个新对象)创建一个新对象,这在控制副作用的情况下也可能有用。这也可以在没有更新/简洁的解构语法的情况下完成。
标签: javascript performance dictionary memory ecmascript-6