首页 > 为什么要把jQuery当参数传给匿名函数?

为什么要把jQuery当参数传给匿名函数?

如题,我不理解的是为什么非要把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,你只需要改下参数就行了,在这种极端的情况下,降低了代码修改和可复用成本。


提高js执行速度吧。

据说使用全局变量会比局部变量/函数参数稍微慢一丢丢~

【热门文章】
【热门文章】