javascript - 这个功能究竟是如何工作的?

标签 javascript

<分区>

试图理解我遇到的范围练习 site's exercise . function doMultiplicationfunction 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 + ' ';

关于javascript - 这个功能究竟是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46043540/

相关文章:

javascript - 通过比较对象的属性来过滤对象数组

javascript - 我如何发送一些 HTML,渲染一个 View ,然后在 Express+Node.js 中发送更多的 HTML?

javascript - 欧芹验证器中带有回车键的下一个按钮

javascript - jQuery 动画圈

Javascript JQUERY AJAX : When Are These Implemented

javascript - 有没有办法在数组值中调用一次函数并使用返回值两次?

javascript - 如何使用 Javascript 为 TextArea 赋值,使用类名而不是 Id 来链接两者?

javascript - Angular Controller 未定义

javascript - 获取 JSON 数据

javascript - js 保存数据到 php 失败