Javascript 调用返回多个值的函数
如果一个函数返回多个计算,并且可以方便地在几个单独的实例中重用该函数,那么最好将计算结果存储在一个内部数组中,然后从数组中取出该特定调用所需的计算,还是有更有效的方法Javascript 调用返回多个值的函数,javascript,Javascript,如果一个函数返回多个计算,并且可以方便地在几个单独的实例中重用该函数,那么最好将计算结果存储在一个内部数组中,然后从数组中取出该特定调用所需的计算,还是有更有效的方法 var calcFunction = function() { var ar = []; var calcA = ... ar.push(calcA); var calcB = ... ar.push(calcA); return ar; } 如果你认为函数很长,那么每次
var calcFunction = function() {
var ar = [];
var calcA = ...
ar.push(calcA);
var calcB = ...
ar.push(calcA);
return ar;
}
如果你认为函数很长,那么每次使用数组会更有效率,然而,随着函数越来越短,这个距离越来越短。但是,这不是使用数组的唯一原因。使用相同的值多次调用函数本质上是代码重复,这是一种标准的代码味道
总的来说,如果你能尽可能少地调用一个方法,你就完成了你的工作。以下是我脑海中根据我的喜好排列的选项。性能,如果是真正的前卫,您应该进行基准测试。首选项取决于代码及其用途
// If independent and appropriate, split it into two separate functions
// modularization into smaller reusable building blocks is good
var calcAFunction = function() {
var calcA = ...
return calcA;
}
var calcBFunction = function() {
var calcB = ...
return calcB;
}
// Returning an array
var calcFunction = function() {
var ar = [];
var calcA = ...
ar.push(calcA);
var calcB = ...
ar.push(calcA);
return ar;
}
// Returning an object, disadvantage you must maintain key names as opposed to index
var calcFunction = function() {
var o = {};
var calcA = ...
o.key1 = calcA;
var calcB = ...
o["key2"] = calcB;
return o;
}
// Calling it with a callback function
var calcFunction = function(cb) {
var o = {};
var calcA = ...
var calcB = ...
cb(calcA, calcB)
}
calcFunction(function(A, B) {})
更新
// Returning an object, disadvantage you must maintain key names as opposed to index
var calcFunction = function() {
var o = {};
var calcA = ...
o.key1 = calcA;
var calcB = ...
o["key2"] = calcB;
return o;
}
var retObj = calcFunction();
//you can access retObj.key1 and retObj.key2
如果它是
o[“key2”]=calcB,我怎么称呼它代码>方式,我需要calcB值?@user3101259我刚刚添加了它,以向您展示在对象上设置键的两种方法。您可以从返回对象以o.key2或o.[“key2”]的形式访问它。当您的键名中有空格时,后一种语法很有用,例如o.[带空格]](o.with space显然不起作用)我指的是整行<代码>变量foo=calcFunction(o.[key2])代码>?@user3101259更新是什么意思?