传递大对象作为参数

10

一般问题:
当将大对象作为参数传递时,是否会影响性能,与传递本地变量相比如何?

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

4个回答

16

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

如果您传递一个字符串,它会被克隆,因此在这种情况下字符串的长度是一个问题。


你说得对,我忘记了对象是通过引用传递的。还有谢谢你提到字符串,这很有用。 - html_programmer

1
在JavaScript中,始终按值传递。但是当传递对象时,该值本身是一个引用。
因此,通过传递大对象不会影响性能,因为被传递的是一个仅是指向对象的引用值。

0

对象的大小不会影响性能,因为在JavaScript中,对象是按引用传递的。


0

虽然在将对象发送到方法时会调用其位置,导致性能略有下降,但编写新组件或查找对象中的错误的便利性远远超过了约1毫秒的成本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接