传递大对象作为参数

时间:2015-07-07 17:10:24

标签: javascript

一般问题:
当一个大对象作为参数传递时,它是否会影响性能?

案例: 我写了一个管理谷歌地图的组件 在组件的每个方法中,它都需要传入Google Maps对象,因为我不想将地图设置为组件上的属性。

4 个答案:

答案 0 :(得分:6)

当您将对象作为参数传递给函数时 - 唯一复制的是该对象的处理程序(即存储对象的内存中的地址)。对象本身不会被克隆,因此当您将一个大对象作为参数传递时,没有任何开销。

如果你传递一个字符串就会被克隆,所以在这种情况下,字符串的长度是一个问题。

答案 1 :(得分:0)

对象的大小不会影响性能,因为javascript中的对象作为参考传递。

答案 2 :(得分:0)

由于在将对象的位置发送到方法时会调用对象的位置,因此性能略有下降,但是编写新组件或在对象中查找错误的难易程度远远超过〜1毫秒成本。

答案 3 :(得分:0)

在JavaScript中,它始终是按值传递的。但是当传递一个对象时,值本身就是一个引用。

因此,传递大对象不会影响性能,因为传递的是一个只是对象引用的值。