Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript函数中参数的大小是否会影响其性能?_Javascript_Function_Arguments_Subset - Fatal编程技术网

javascript函数中参数的大小是否会影响其性能?

javascript函数中参数的大小是否会影响其性能?,javascript,function,arguments,subset,Javascript,Function,Arguments,Subset,我有一个键值对,包含五个键值,每个键值都是由一千个对象组成的巨大数组。我可以在将其传递到函数时将其子集,也可以在函数中传递整个数组 例如: keyVal ={"first_array": Object[1000], "second_array": Object[1000], "third_array": Object[1000], "fourth_array": Object[1000] } var first_arr = keyVal.first_array 两种可能性: function

我有一个键值对,包含五个键值,每个键值都是由一千个对象组成的巨大数组。我可以在将其传递到函数时将其子集,也可以在函数中传递整个数组

例如:

keyVal ={"first_array": Object[1000],
"second_array": Object[1000],
"third_array": Object[1000],
"fourth_array": Object[1000]
}
var first_arr = keyVal.first_array
两种可能性:

function notSubsettedArgs(keyVal){
$.each(keyVal.first_array,function(i,item){
//some processing});
}

function subsettedArgs(first_array){
$.each(first_array,function(i,item){
//do some processing});
}
它在javascript中有区别吗?
函数是否承担参数大小的负载?

感谢

JavaScript通过将引用的副本传递给数组/对象,从而将数组和对象传递给函数,因此传递整个过程可能很好。只需知道,如果在函数中对其进行变异,这些更改将影响原始数组/对象


如果这是浏览器代码而不是服务器(例如Node.js)代码,则可以使用进行测试。小心点

JavaScript通过将引用的副本传递给数组/对象,将数组和对象传递给函数,因此传递整个过程可能没问题。只需知道,如果在函数中对其进行变异,这些更改将影响原始数组/对象


如果这是浏览器代码而不是服务器(例如Node.js)代码,则可以使用进行测试。小心点

您是否尝试过测试它?因为数据似乎在相关函数调用之前和之后都会存在,这可能没有什么区别,您正在以任何方式传递“指针”。用于运行比较测试。@dandavis这就像将参数作为指针传递一样吗?是的,就是这样。不要对语义太过具体,否则我们将整天都在这里,但是当你在js中传递一个对象时,你实际上是在传递一个对象的引用。如果处理没有阻止垃圾收集,cpu/ram的使用率应该是恒定的。您是否尝试过测试它?因为数据似乎在相关函数调用之前和之后都会存在,这可能没有什么区别,您正在传递“指针”任意一种方法。用于运行比较测试。@dandavis它就像将参数作为指针传递一样吗?是的,就是这样。不要对语义太过具体,否则我们将整天都在这里,但是当你在js中传递一个对象时,你实际上是在传递一个对象的引用。如果处理没有阻止垃圾收集,cpu/ram的使用应该是恒定的。“JavaScript通过引用将数组和对象传递给函数”更准确地说,JavaScript通过值传递所有内容,但该值是对对象的引用。这与参考传递的实际含义不同。谢谢。我试图使语言更精确:“JavaScript通过向数组/对象传递引用副本将数组和对象传递给函数”“JavaScript通过引用将数组和对象传递给函数”更精确地说,JavaScript通过值传递所有内容,但值是对对象的引用。这与参考传递的实际含义不同。谢谢。我试图使语言更精确:“JavaScript通过将引用的副本传递给数组/对象,将数组和对象传递给函数”