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更新是什么意思?