【发布时间】: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
);
};
}
【问题讨论】:
标签: javascript parameters scope closures undefined