javascript - 将较小的对象传递给函数是否可以更好地提高性能

标签 javascript performance

技术背景:

阅读this page关于 JavaScript 如何通过共享到函数来传递对象.. 现在我知道被调用函数内的对象与第一个外部作用域中的对象相同,除非直接分配给它。

这就是我可以用语言表达的方式。但是 the page 中的示例代码更好、更简单。

我的问题如下:

因为我正在尝试改进我的计算方法,所以我有一个非常基本的问题。将较小的派生对象(假设只有重要键的子字典)传递给仅用于读取(而不是分配给)的函数是否对性能(运行时间)更好?

为了简单起见,这里是一个示例

function func(){
     var bigobj = {a:1, b:2, c:3, d:4}; 
     otherFunc(bigobj.a);  // will we gain some time against calling otherFunc(bigobj);  ??
     function otherFunc(obj){
         //obj is a smaller representation of bigobj
         //obj will not be assigned to here
    }
}

最佳答案

不,因为对象是 JavaScript 中的引用。在这种情况下,唯一必须传递给函数的是与对象大小无关的引用。

如果您传递值(字符串、数字等),则每次进行函数调用时都会复制该值,这会产生一些额外的性能成本。但是,除非您使用大量值,否则这不太可能对性能造成重大影响。

关于javascript - 将较小的对象传递给函数是否可以更好地提高性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49881314/

相关文章:

javascript - Facebook Like 和 Twitter Tweet 加载缓慢

javascript - 无法调试 onmouseover 事件

performance - 谷歌 PageSpeed : Big gap between Desktop and Mobile

javascript - 单个文本区域中的按钮值

javascript - onClick 函数适用于运行时但不适用于实际点击

javascript - 使用 NodeJS 和 HighStocks(或 Google Annotation Time Line)设计 Web 应用程序

c# - 归档文件时加快处理时间

ios - iOS 上的 SQLite : performance and restrictions

performance - 广度优先搜索分支因子

java - 在 android 中重绘位图的更快方法?