console.log((function(x, f = () => x) {
var x;
var y = x;
x = 2;
return [x, y, f()];
})(1));
这是代码片段。这里的输出是 (3) [2, 1, 1] 第三个输出如何是 1 而不是 2?
此外,如果我在 Scratch JS 上运行此代码,它会打印 (3) [2, 1, 2]
为什么这里的输出不同?
我尝试在 IIFE 函数中传递第二个参数,如下所示:
console.log((function(x, f = (z) => z) {
var x;
var y = x;
x = 2;
return [x, y, f(z)];
})(1, 2));
但这会引发错误
chrome 控制台中的输出是 (3) [2, 1, 1],而 Scratch JS 中的输出是 (3) [2, 1, 2]
慕婉清6462132
慕虎7371278
相关分类