(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加载完成时运行的代码
多多关照,多多指教,共同成长
---嘉煠