简单谈谈jQuery(function(){})与(function(){})(jQuery)

  作者:bea

开发jQuery插件时总结的一些经验分享一下。 一、先看 jQuery(function(){ }); 全写为 jQuery(document).ready(function(){ }); 意义为在DOM加载完毕后执行了ready()方法。 二、再看 (function(){ })(jQuery); 其实际上是执行()(para)匿名方法,只不过是传递了jQuery对象。 (function($) {…})(jQuery); 这里实际上是匿名函数,如下: fun

开发jQuery插件时总结的一些经验分享一下。


一、先看
jQuery(function(){ });
全写为
jQuery(document).ready(function(){ });


意义为在DOM加载完毕后执行了ready()方法。


二、再看
(function(){ })(jQuery);
其实际上是执行()(para)匿名方法,只不过是传递了jQuery对象。


(function($) {…})(jQuery);


这里实际上是匿名函数,如下:


function(arg){…}
这就定义了一个匿名函数,参数为arg


而调用函数时,是在函数后面写上括号和实参的,由于操作符的优先级,函数本身也需要用括号,即:
(function(arg){…})(param)
这就相当于定义了一个参数为arg的匿名函数,并且将param作为参数来调用这个匿名函数


而(function($){…})(jQuery)则是一样的,之所以只在形参使用$,是为了不与其他库冲突,所以实参用jQuery
相当于funtion output(s){…};output(jQuery);或者var fn=function(s){…};fn(jQuery);


$(function(){…});


或者:


jQuery(function($) {

});


允许你绑定一个在DOM(不包含图片)文档载入完成后执行的函数。这个函数的作用如同$(document).ready()一样,只不过用这个函数时,需要把页面中所有需要在 DOM 加载完成时执行的$()操作符都包装到其中来。从技术上来说,这个函数是可链接的--但真正以这种方式链接的情况并不多。


全写是:
$(document).ready(function(){

});


三、总结


jQuery(function(){ });用于存放操作DOM对象的代码,执行其中代码时DOM对象已存在。不可用于存放开发插件的代码,因为jQuery对象没有得到传递,外部通过jQuery.method也调用不了其中的方法(函数)。
(function(){ })(jQuery);用于存放开发插件的代码,执行其中代码时DOM不一定存在,所以直接自动执行DOM操作的代码请小心使用。




有用  |  无用

猜你喜欢