(function($){...})(jQuery)和$(document).ready(function(){}) 的区别

(function($){...})(jQuery)  实际上是执行()(para)匿名函数,只不过是传递了jQuery对象。   立即执行函数;相当于先申明一个函数,声明完后直接调用;

用于存放开发插件的代码,执行其中代码时DOM不一定存在,所以直接自动执行DOM操作的代码请小心使用。

相当于

  var fn=function($){…};

  fn(jQuery);//执行这个函数

  之所以只在形参使用$,是为了不与其他库冲突,所以实参用jQuery。

 作用:  

这种写法的最大好处是形成闭包。在(function($) {…})(jQuery)在内部定义的函数和变量只能在此范围内有效。

形成是否函数函数、私有变量的概念。外部的变量与函数影响不到我们自己的内容

 

$(document).ready(function(){})  在DOM加载完成时运行的代码,不可用于存放开发插件的代码,因为jQuery对象没有得到传递,外部通过jQuery.method也调用不了其中的方法(函数)。 

  用于存放操作DOM对象的代码,执行其中代码时DOM对象已存在。不可用于存放开发插件的代码,因为jQuery对象没有得到传递,外部通过jQuery.method也调用不了其中的方法(函数)。

最明显的区别就是执行的顺序不一样,(function($){...})(jQuery) 立即执行函数;$(document).ready(function(){})  在DOM加载完成时运行的代码

原文地址:https://www.cnblogs.com/jiayeyuan/p/7767454.html