不明白这里发生了什么;使用jQuery对象的匿名函数

时间:2012-10-15 03:09:15

标签: javascript jquery

很抱歉提出一个天真的问题,但我正试图找出将一堆代码构建成更容易管理的代码的最佳方法

我想将事件及其响应放入网站不同部分的“控制器”中。我正在仔细阅读这本书Javascript Web Applications并看到了一些有希望的东西(p5 - 我对我理解的内容的评论):

var controller={};  // ok- an object literal

(Controller.users = function($){  // creating an anonymous function; I don't get the dollar sign since it seems to work fine without it
  var jtClick= function(){
    alert('you clicked on me!');
  };

  $(function(){
    $('#view').on('click',jtClick);
  });
})(jQuery);

但我也注意到这也做了同样的事情:

var controller={};

(Controller.users = function(){
  var jtClick= function(){
    alert('you clicked on me!');
  };

  $(function(){
    $('#view').on('click',jtClick);
  });
})();

所以我需要传递jQuery作为我的匿名函数的一部分吗?这会改变范围的处理方式吗?我更新了标题以删除'完全',因为我不认为我得到了很多这个

事先提前

1 个答案:

答案 0 :(得分:1)

这是一个自我调用函数,允许您安全地将jQuery与其他使用$作为库对象/变量的库一起使用。

上面示例中的

$只是在调用函数时传递的jQuery对象。