为何要把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传进去,能够减小做用域查找。html

    • 若是不把jQuery当参数传递,则你使用变量jQuery/$的时候,首先会在函数体内查找,而后进fn查找,最后到window下查找。jquery

    • 而你把jQuery传进去以后,则只须要在函数体内查找$便可。函数

  2. 若是之后依赖的是Zepto/jqlite,你只须要改下参数就好了,在这种极端的状况下,下降了代码修改和可复用成本。code

相关文章
相关标签/搜索