如何在闭包中排除未定义的参数?
Posted
技术标签:
【中文标题】如何在闭包中排除未定义的参数?【英文标题】:How to exclude undefined parameters in a closure? 【发布时间】:2022-01-16 13:13:24 【问题描述】:closures
上的 javascript
练习题如下:
更改函数以支持多个函数调用:
function joinWords(a, b)
return console.log(a + ' ' + b);
请参阅下面的示例案例,了解示例输入及其预期输出。
输入 1: const greet = joinWords("Hello"); greet("world);输出 1: “你好世界”
输入 2: const greet = joinWords("Hey", "there!"); greet("Where", "is", "Foo", "Bar?");输出 2: “嘿那里!Foo Bar 在哪里?”
对于解决方案,我已经成功实现了一个闭包,但我仍在控制台记录未定义的参数。 AKA,对于第一个测试用例(输入 1 和输出 1),我正在输出 Hello undefined World undefined undefined undefined. 我怎样才能优雅地排除未定义的参数?
function joinWords(a, b)
return function(c, d, e, f)
console.log(
a + ' ' + b + ' ' + c + ' ' + d + ' ' + e + ' ' + f
);
;
【问题讨论】:
【参考方案1】:您可能正在寻找rest parameters,它使函数接受任意数量的参数并将它们作为数组传递(然后可以调用.join
方法):
function joinWords(...values)
return values.join(" ");
【讨论】:
以上是关于如何在闭包中排除未定义的参数?的主要内容,如果未能解决你的问题,请参考以下文章
如何在此 onclick 函数中成功传递参数?未捕获的 ReferenceError:未定义 B081517B [重复]