我有一个接收两个整数的函数,我想用更大的一个初始化另一个变量。
这是代码部分:
function findCommonDev(num1, num2) {
var res = ((num1, num2) => {
if (num1 > num2) {
return num1;
} else {
return num2;
}
});
console.log(res);
}
findCommonDev(10,12)
现在,由此引起的问题与特定代码无关。
console.log(res)打印'[function:res]',我希望res具有传递给该函数的较大int的值。
我正在用VSC编写,并且未将参数标记为已使用,这意味着存在num1和num2的阴影-为什么?
我该如何优雅地解决这个问题?
答案 0 :(得分:3)
您需要调用该函数并将num1
和num2
作为参数传递。
function findCommonDev(num1, num2) {
var res = ((num1, num2) => {
if (num1 > num2) {
return num1;
} else {
return num2;
}
})(num1,num2);
console.log(res);
}
findCommonDev(4,6)
还要注意,如果不传递num1
和num2
,则该代码将无法工作,因为函数num1
和num2
中的变量是局部变量,而不是局部变量外部函数的变量。
函数的预期参数就像局部变量一样。无论是否传递参数,都会创建它们。
答案 1 :(得分:1)
除了返回一个新函数(这是提供所需值的实函数)之外,您还可以取最大值。
function findCommonDev(num1, num2) {
var res = Math.max(num1, num2);
console.log(res);
}
findCommonDev(3, 42);
答案 2 :(得分:0)
您要给控制台提供功能参考。但是,要运行函数,然后指定参数:
function findCommonDev(num1, num2) {
var res = ((num1, num2) => {
if (num1 > num2) {
return num1;
} else {
return num2;
}
});
return res(num1, num2);
};
console.log(findCommonDev(1,2));