为什么要定义一个匿名函数并将jQuery作为参数传递给它?

我正在看ribs.js截屏视频中出色的peepcode演示代码。在其中,主干代码全部封装在传递给jQuery对象的匿名函数中:


(function($) {

  // Backbone code in here

})(jQuery);

在我自己的主干代码中,我将所有代码包装在jQuery DOM'ready'事件中:


$(function(){

  // Backbone code in here

});

第一种方法的目的/优势是什么?这样做会创建一个匿名函数,然后立即将jQuery对象作为函数参数传递来执行该匿名函数,从而有效地确保$是jQuery对象。这是唯一的观点-保证jQuery绑定到“ $”还是有其他原因呢?


汪汪一只猫
浏览 771回答 3
3回答

MYYA

作为次要说明,将$作为参数传递给匿名函数会使$在该函数中成为本地函数,如果$函数被调用很多,则对性能的影响很小。这是因为javascript首先在本地范围内搜索变量,然后一直向下遍历到窗口范围(通常位于$)。

慕的地8271018

同时使用。自我传递函数,您可以在其中传递jQuery来防止库冲突,并确保jQuery与$一样可用。和.ready()快捷方式方法是仅在DOM已加载后才需要运行JavaScript的方法:(function($) {    $(function(){          //add code here that needs to wait for page to be loaded    });    //and rest of code here})(jQuery);
打开App,查看更多内容
随时随地看视频慕课网APP