Вот варианты с верхней части головы в порядке моих предпочтений. Производительность, если она действительно доступна, вам следует сравнить. Предпочтение зависит от вашего кода и его цели.
// 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) {})
UPDATE
// 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
Как назвать это, если это 'о [ "key2"] = calcB;' путь, и мне нужно значение calcB? – user3101259
@ user3101259 Я просто добавил, что чтобы показать вам два пути, вы можете установить ключ на объект. вы можете получить доступ к этому из возвращаемого объекта как _o.key2_ или _o. ["key2"] _. Последний синтаксис полезен, когда у вас есть пробелы в имени вашего ключа, например, _o. ["С пробелом"] _ (_o.with space_ не работает явно) – cbayram
Я имею в виду всю строку .. 'var foo = calcFunction (o . ["key2"]); '? – user3101259