javascript 函数中参数的大小会影响其性能吗?
does size of argument in a javascript function affects its performance?
我有一个包含五个键的键值对,每个键的值都是由数千个对象组成的巨大数组。我可以在将它传递给函数时对其进行子集化,也可以在函数中传递整个数组。
例如:
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 通过将引用的副本传递给 array/object 来将数组和对象传递给函数,因此传递整个事物可能没问题。只知道如果你在函数中改变它,那些改变会影响你原来的 array/object!
如果这是浏览器代码而不是服务器代码(例如 Node.js),您可以使用 jsperf.com. Just be careful. It's easy to do JS benchmarks wrong!
进行测试
我有一个包含五个键的键值对,每个键的值都是由数千个对象组成的巨大数组。我可以在将它传递给函数时对其进行子集化,也可以在函数中传递整个数组。
例如:
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 通过将引用的副本传递给 array/object 来将数组和对象传递给函数,因此传递整个事物可能没问题。只知道如果你在函数中改变它,那些改变会影响你原来的 array/object!
如果这是浏览器代码而不是服务器代码(例如 Node.js),您可以使用 jsperf.com. Just be careful. It's easy to do JS benchmarks wrong!
进行测试