为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

汪汪一只猫 2019-11-05 11:10:24
我正在看ribs.js截屏视频中出色的peepcode演示代码。在其中,主干代码全部封装在传递给jQuery对象的匿名函数中:(function($) {  // Backbone code in here})(jQuery);在我自己的主干代码中,我将所有代码包装在jQuery DOM'ready'事件中:$(function(){  // Backbone code in here});第一种方法的目的/优势是什么?这样做会创建一个匿名函数,然后立即将jQuery对象作为函数参数传递来执行该匿名函数,从而有效地确保$是jQuery对象。这是唯一的观点-保证jQuery绑定到“ $”还是有其他原因呢?
查看完整描述

3 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

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


查看完整回答
反对 回复 2019-11-05
?
慕的地8271018

TA贡献1796条经验 获得超4个赞

同时使用。


自我传递函数,您可以在其中传递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);


查看完整回答
反对 回复 2019-11-05
  • 3 回答
  • 0 关注
  • 736 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信