【发布时间】:2018-01-18 18:13:57
【问题描述】:
有没有办法用 Javascript (ES6) 实现下面的代码?
如果是,我该怎么做?我尝试了这个示例,但没有成功。
const funcA = (callback, arg1) => {
console.log("Print arg1: " + arg1); /* Print arg1: argument1 */
let x = 0;
x = callback(x, );
return x;
}
const funcB = (x, prefix) => {
console.log("Print prefix: " + prefix); /* Print prefix: PREFIX_ */
x = x + 1;
return x;
}
/* Exec function funcA */
let x = funcA(funcB( ,"PREFIX_"), "argument1");
console.log("Value of x: " + x); /* Value of x: 1 */
【问题讨论】:
-
您有空参数和前导逗号。你期待什么结果?
-
我知道。但是我对空格和逗号的意思是参数是在不同的时间传递的。
-
部分申请——这就是我想知道的!我的例子表明了这一点。 (请参阅接受的答案)。
-
@PedroGabrielLima 将
x定义为默认参数funcA(x = () => funcB(x = 0 ,"PREFIX_"), "argument1"); -
@guest271314 我在你的例子中从控制台收到了这个错误:ReferenceError: can't access lexical declaration `x' before initialization.
标签: javascript ecmascript-6 callback