JavaScript执行路径

JavaScript execution path

本文关键字:路径 执行 JavaScript      更新时间:2023-09-26

为什么inner()函数执行了2次却没有执行3次?

谢谢!

<script type="text/javascript">
    function outer() {
        inner(); 
        function inner() {
            document.write("<p style='background-color:lightblue;'>Inner Function");
        }
        inner(); 
    }
    outer(); 
</script>

让我们看看我是否可以澄清该代码的问题。我相信您认为函数定义会导致函数被执行。

<script type="text/javascript">
    function outer() {
        // call #1
        inner(); 
        // this is the function definition, it is NOT called here
        function inner() {
            document.write("<p style='background-color:lightblue;'>Inner Function");
        } 
        // can #2
        inner(); 
    }
    outer(); 
</script>

正如您在代码注释中看到的,函数执行了两次,所以您的结果完全是预期的