试图理解我遇到的范围练习 site's exercise . function doMultiplication
在 function writeIt
中究竟是如何被调用的?每次我试图弄清楚这个看似简单的练习时,我都会睁一只眼闭一只眼。你能把它分解来解释一下这个是如何工作的吗?提前致谢。
function writeIt(numTimes, multiple) {
function doMultiplication(val, multiple) {
i = val * multiple;
return i;
}
for (let i = 0; i < numTimes; i++) {
document.write(doMultiplication(i, multiple) + ' ');
}
}
writeIt(5, 2);
编辑 - 这是我对正在发生的事情的理解,因此可以澄清我在这里不理解的东西......
那么,writeIt(5, 2) 函数意味着 2 乘以 val?但是这里的 val 是什么?
我得到了 for 方程式,以及 numTimes 是 5 的多少……我想我被 val 部分搞糊涂了?
在调用 writeIt(5,2);
时会发生以下事情 -
writeIt(5,2)
这里 numTimes
= 5 & multiple
= 2.
现在根据函数声明它移动到 for
循环 -
for (let i = 0; i < numTimes; i++) {
document.write(doMultiplication(i, multiple) + ' ');
}
至-
for (let i = 0; i < 5; i++) {
//document.write(doMultiplication(0, 2) + ' ');
//document.write(doMultiplication(1, 2) + ' ');
//document.write(doMultiplication(2, 2) + ' ');
//document.write(doMultiplication(3, 2) + ' ');
//document.write(doMultiplication(4, 2) + ' ');
}
现在我们转到-
function doMultiplication(val, multiple) {
i = val * multiple;
return i;
}
从 for 循环中调用 -
//document.write(doMultiplication(0, 2) + ' ');
所以 doMultiplication(0, 2) => 0*2 => return 0; => 0 + ' ';
//document.write(doMultiplication(1, 2) + ' ');
所以 doMultiplication(1, 2) => 1*2 => return 2; => 2 + ' ';
//document.write(doMultiplication(2, 2) + ' ');
所以 doMultiplication(2, 2) => 2*2 => return 4; => 4 + ' ';
//document.write(doMultiplication(3, 2) + ' ');
所以 doMultiplication(3, 2) => 3*2 => return 6; => 6 + ' ';
//document.write(doMultiplication(4, 2) + ' ');
所以 doMultiplication(4, 2) => 4*2 => return 8; => 8 + ' ';