这是您发布的代码的格式合理的版本
1. function one(numOneIn) {
2. two(numOneIn * 3);
3. document.write(numOneIn);
4. }
5. function two(aNumberIn) {
6. document.write(aNumberIn);
7. }
8. function three(numIn) {
9. one(numIn * 2);
10. document.write(numIn);
11. }
12. three(5);
让我们看看它是如何执行的。
前几组(1-4、5-7、8-10)是function 定义。它们在被调用之前不会执行。
执行的第一行是three(5)(第12行)。
它在8 行调用three 函数,将5 的值传递给numIn 参数。
执行的下一行是one(numIn * 2)(第 9 行)。
它在1 行调用one 函数,将10 (5 * 2) 的值传递给numOneIn 参数。
执行的下一行是two(numOneIn * 3)(第2行)。
它在5 行调用two 函数,将30 (10 * 3) 的值传递给aNumberIn 参数。
执行的下一行是 document.write(aNumberIn)(第 6 行),它将 '30' 添加到 DOM,因为 aNumberIn 被强制转换为字符串。
第 7 行结束对two 的调用。
执行的下一行是 document.write(numOneIn)(第 3 行),它将 '10' 添加到 DOM,因为 numOneIn 被强制转换为字符串。
第 4 行结束对one 的调用。
执行的下一行是 document.write(numIn)(第 10 行),它将 '5' 添加到 DOM,因为 numIn 被强制转换为字符串。
第 11 行结束对three 的调用。
脚本已完成执行。
DOM 的最终状态是 '30105' 的字符串。