如果我有一个函数可以接收类似的调用
function car_total(y) {
final_total(y);
}
function toy_total(x) {
final_total(x);
}
如何创建一个函数来计算两个总计(如果存在)但只能接收 1 个参数并且不会抛出错误,这可能吗?
function final_total(x,y) {
//if passed just x
sum = x ;
//if passed just y
sum = y;
//if passed x, y
sum = x + y ;
}
最佳答案
您只能传递一个参数,但只有一个参数时,该参数必须是 x
;因为没有办法(不传递对象)确定您“打算”传入哪个变量。因此收到的第一个变量将始终是 x
,第二个y
,不过,我建议:
function final_total(x,y) {
return y ? x + y : x;
}
并且,在仅存在一个传入参数的情况下,该函数返回该单个值,或者,给定两个变量,返回这两个变量的总和。所以这确实如你所愿,即使没有办法确定是否 x
或 y
已传入。
但是,如果您必须显式传入其中一个 x
或 y
(由于某种原因):
function final_total(values) {
var x = values.x || 0,
y = values.y || 0;
return x + y;
}
var variableName1 = final_total({x : 23, y : 4});
console.log(variableName1);
// 27
var variableName2 = final_total({y : 4});
console.log(variableName2);
// 4
var variableName3 = final_total({x : 23});
console.log(variableName3);
// 23
关于JavaScript 编程函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13501162/