简单谈谈jQuery(function(){})与(function(){})(jQuery)
作者:bea
开发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操作的代码请小心使用。
猜你喜欢
您可能感兴趣的文章:
- javascript中parseInt()函数的定义和用法分析
- JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法
- node.js解决获取图片真实文件类型的问题
- javascript使用for循环批量注册的事件不能正确获取索引值的解决方法
- Node.js实现批量去除BOM文件头
- javascript删除一个html元素节点的方法
- Node.js中调用mysql存储过程示例
- nodejs中操作mysql数据库示例
- 零基础搭建Node.js、Express、Ejs、Mongodb服务器及应用开发入门
- jQuery多媒体插件jQuery Media Plugin使用详解
- jquery图片播放浏览插件prettyPhoto使用详解
- js中匿名函数的创建与调用方法分析
- 浅谈Javascript中匀速运动的停止条件
- 浅谈Javascript如何实现匀速运动
- Javascript添加监听与删除监听用法详解
- Javascript 实现图片无缝滚动
- 使用JavaScript获取地址栏参数的方法
- JS获取各种宽度、高度的简单介绍
- JQuery右键菜单插件ContextMenu使用指南