作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在一次采访中遇到了这个问题。我不知道如何解决这个问题。问题:编写一个 sum 函数,将 2 个数字相加,但数字可以通过以下方式传递给函数:
我可以使用闭包解决第一个函数,实际上对于第二个函数,我也可以检查参数,如果参数长度为零,我可以再次调用 sum 来排除下一个参数。但如何使其通用呢?意味着即使您的第一个参数和最后一个参数有“N”次调用,并且这些参数可以为空或参数化,它也应该返回总和。
最佳答案
录制了视频如何解决:
文字回答:
function sum(numberOne) {
return function innerSum(numberTwo) {
if (typeof(numberTwo) === 'number') {
return numberOne + numberTwo;
}
return innerSum;
}
}
输出:
sum(3)(4); => 7
sum(5)()()(10); => 15
基本上,您需要返回内部函数 (innerSum
),直到收到一个值 - 然后返回 number
。
您还可以为您的方法选择其他名称 - 例如 _sum()
或 addToFirstNumber()
。
关于javascript - javascript 中的闭包,对 sum 函数进行多次空调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45178358/
背景 最近长沙的天气暴热,室内达到了34-35度,天气预报最高温度上了40度,这么酷热的天气,离开了空调,基本上就是一身汗,全身湿透,特别难受,然后不得不开启家里的一台将近10年的老式定频空调,
我是一名优秀的程序员,十分优秀!