繁体   English   中英

了解匿名函数的作用域和返回值

[英]understanding the anonymous function scope and return value

我有一个接收两个整数的函数,我希望另一个变量用较大的变量初始化。

这是代码部分:

 function findCommonDev(num1, num2) { var res = ((num1, num2) => { if (num1 > num2) { return num1; } else { return num2; } }); console.log(res); } findCommonDev(10,12) 

现在,由此产生的问题与特定代码无关。

  1. console.log(res)打印'[function:res]'我希望res具有传递给函数的较大int的值。

  2. 我正在用VSC编写,并且未将参数标记为正在使用,这意味着存在num1和num2的阴影-为什么?

  3. 我该如何优雅地解决这个问题?

您需要调用该函数并将num1num2作为参数传递。

 function findCommonDev(num1, num2) { var res = ((num1, num2) => { if (num1 > num2) { return num1; } else { return num2; } })(num1,num2); console.log(res); } findCommonDev(4,6) 

还要注意,如果不传递num1num2该代码将无法工作,因为在函数num1num2是局部变量,而不是外部函数的变量。

函数的预期参数就像局部变量一样。 无论是否传递参数都将创建它们。

除了返回新函数(这是提供所需值的实际函数)之外,您还可以取最大值。

 function findCommonDev(num1, num2) { var res = Math.max(num1, num2); console.log(res); } findCommonDev(3, 42); 

您要给控制台提供功能参考。 但是,要运行函数,然后指定参数:

 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)); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM