一個基礎的問題 多個$(function(){})裏面的函數 爲何在下一個$(function(){})裏無法執行。

先看下例子html

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="jquery-1.10.2_d88366fd.js"></script>
    </head>
    <body>
        <script>
            $(function(){
                function console1(){
                    console.log('js1:console1');
                }
            })
        </script>
        <script>
            $(function(){
                console1();
            })
        </script>
    </body>
</html>

這樣寫 console1函數沒法執行報錯,說沒找到console1函數。jquery

想了半天,原來每一個$(function(){})都是一個函數,函數都有本身的做用域,匿名函數至關於私有的函數,要把匿名函數改爲 全局函數就能夠在下面用了。函數

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="jquery-1.10.2_d88366fd.js"></script>
    </head>
    <body>
        <script>
            var console1;
            $(function(){
                console1=function (){
                    console.log('js1:console1');
                }
            })
        </script>
        <script>
            $(function(){
                console1();
            })
        </script>
    </body>
</html>
相關文章
相關標籤/搜索