(function($){...})(jQuery) 和 $(function(...){})的异同

来源:互联网 发布:2016年大数据产业规模 编辑:程序博客网 时间:2024/06/06 01:12

1.(function($){…})(jQuery)

  • #### 原理:
    实际上等同于
var fun = function(params){....};fun(jQuery);

function()...====(之所以将参数声明为$是为了不与其他库冲突);为了调用该函数则在该匿名函数的后面添上了括号和实参(这里为jQuery);但又由于操作符的优先级,函数本身也需要用括号,所以又为匿名函数添加了括号。

  • #### 特点
  • 用于存放开发插件的代码,执行其中代码时DOM不一定存在
  • 这种写法可以形成闭包。在(function($) {…})(jQuery)在内部定义的函数和变量只能在此范围内有效。
    形成是否函数函数、私有变量的概念。比如:
var i=3;function init(){    alert("外层init:"+i);}(function($) {    var i=2;//内部变量    function init(){ //内部函数        alert("内层init:"+i);    }    init();})(jQuery);init();

执行结果:

内层init:2外层init:3
  • #### 执行时间
    (function()...)(jQuery)(function(){…})。

2.$(function(){…})

  • 原理:

    实际上是 $(document).ready(function(){…}) 的缩写。

  • 特点:

用于存放操作DOM对象的代码,执行其中代码时DOM对象已存在。
- #### 执行时间:
$(function(){…}) 实际是在网页DOM加载完毕后执行

0 0
原创粉丝点击