JavaScript执行路径

时间:2015-03-06 12:10:10

标签: javascript

为什么inner()函数被执行2次而不是3次?

谢谢!

<script type="text/javascript">

    function outer() {

        inner(); 

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

        inner(); 
    }

    outer(); 

</script>

1 个答案:

答案 0 :(得分:2)

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

<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>

因此,您可以看到代码注释,函数执行两次,因此您的结果是完全可以预期的