我甚至不确定如何提出这个问题。
在Javascript中,我想调用一个函数来确定要包含在测量中的单位,但是,如果测量是某个单位,我想将计算传递回调用函数以供其评估。
简单地说,我使用测量名称
调用函数“Unit”unit(details)
其中细节例如是“卡路里”。
单位功能很简单:
function unit(measure) {
if ( measure == "cadence" ) { return " rpm "; };
if ( measure == "calories" ) { return " calories " + " ( " + Math.round( 4.184 * function(){event[key][details]} ) + " kJ )"; };
...
...
}
如果'measure'是卡路里,我想传回一个调用函数的公式,以根据其变量进行评估。
这可能吗?
道歉,如果这是一个简单的问题,我只是错过了它。
答案 0 :(得分:4)
必须在return关键字后直接声明匿名函数。
function unit(measure) {
if ( measure == "cadence" ) { return " rpm "; };
if ( measure == "calories" ) { return function(){
//calculation goes here
}}
}
答案 1 :(得分:1)
这对你有用吗?
function unit(measure) {
var measurements = {
cadence: {
value: "rpm"
formula: null
},
calories: {
value: "calories",
formula: function() {
return Calories(....);
}
}
};
return measurements[measure];
};
这样,您可以删除多个if-else分支。
答案 2 :(得分:0)
由于函数是JS中的第一类构造,因此可以将函数作为普通变量返回。
if(measure === "calories") {
return function(key, details) {
return "Calories (" + Math.round(4.184 * event[key][details] + "kJ)"
}
}