1. 程式人生 > >為什麼要把jQuery當引數傳給匿名函式?

為什麼要把jQuery當引數傳給匿名函式?

<body>
    <div class="left"></div>
    <div class="right">heelsj</div>
</body>
<script src="jquery-3.1.0.js"></script>
<script>
    var fn = function(){
        return (function($){
            console.log($('.right').html());
        })(jQuery)
    }();
</script>

 

  1. 首先函式會構建作用域,把jQuery傳進去,可以減少作用域查詢。

    • 如果不把jQuery當引數傳遞,則你使用變數jQuery/$的時候,首先會在函式體內查詢,然後進fn查詢,最後到window下查詢。

    • 而你把jQuery傳進去之後,則只需要在函式體內查詢$即可。

  2. 如果以後依賴的是Zepto/jqlite,你只需要改下引數就行了,在這種極端的情況下,降低了程式碼修改和可複用