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


Posted in Javascript onDecember 19, 2014

开发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 相关文章推荐
jquery tools 系列 scrollable学习
Sep 06 Javascript
理清apply(),call()的区别和关系
Aug 14 Javascript
jQuery页面滚动浮动层智能定位实例代码
Aug 23 Javascript
javascript仿qq界面的折叠菜单实现代码
Dec 12 Javascript
jquery怎样实现ajax联动框(二)
Mar 08 Javascript
子页向父页传值示例
Nov 27 Javascript
Jquery easyui 实现动态树
Nov 17 Javascript
jQuery的文档处理程序详解
May 10 Javascript
利用Angularjs和bootstrap实现购物车功能
Aug 31 Javascript
基于DOM节点删除之empty和remove的区别(详解)
Sep 11 Javascript
Vue路由之JWT身份认证的实现方法
Aug 26 Javascript
Element DateTimePicker日期时间选择器的使用示例
Jul 27 Javascript
jQuery多级弹出菜单插件ZoneMenu
Dec 18 #Javascript
使用jquery菜单插件HoverTree仿京东无限级菜单
Dec 18 #Javascript
jQuery实现视频作为全屏幕背景
Dec 18 #Javascript
JS实现判断滚动条滚到页面底部并执行事件的方法
Dec 18 #Javascript
浅析jQuery EasyUI中的tree使用指南
Dec 18 #Javascript
JavaScript实现弹出子窗口并传值给父窗口
Dec 18 #Javascript
JavaScript获取Url里的参数
Dec 18 #Javascript
You might like
PH P5.2至5.5、5.6的新增功能详解
2014/07/14 PHP
getJSON跨域SyntaxError问题分析
2014/08/07 PHP
php页面,mysql数据库转utf-8乱码,utf-8编码问题总结
2015/08/27 PHP
PHP程序守护进程化实现方法详解
2020/07/16 PHP
读jQuery之四(优雅的迭代)
2011/06/20 Javascript
javascript中xml操作实现代码
2011/11/21 Javascript
javascript计算用户打开网页的停留时间
2014/01/09 Javascript
js限制input标签中只能输入中文
2015/06/26 Javascript
jquery实现的动态回到顶部特效代码
2015/10/28 Javascript
基于JS如何实现类似QQ好友头像hover时显示资料卡的效果(推荐)
2016/06/09 Javascript
简单理解vue中track-by属性
2016/10/26 Javascript
boostrapTable的refresh和refreshOptions区别浅析
2017/01/22 Javascript
jQuery html表格排序插件tablesorter使用方法详解
2017/02/10 Javascript
浅谈JavaScript面向对象--继承
2019/03/20 Javascript
Angular中innerHTML标签的样式不起作用的原因解析
2019/06/18 Javascript
vue 解除鼠标的监听事件的方法
2019/11/13 Javascript
vue使用echarts实现水平柱形图实例
2020/09/09 Javascript
[53:49]LGD vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python采用raw_input读取输入值的方法
2014/08/18 Python
python利用paramiko连接远程服务器执行命令的方法
2017/10/16 Python
python探索之BaseHTTPServer-实现Web服务器介绍
2017/10/28 Python
Win8下python3.5.1安装教程
2020/07/29 Python
Python实现使用request模块下载图片demo示例
2019/05/24 Python
numpy:找到指定元素的索引示例
2019/11/26 Python
PyCharm 在Windows的有用快捷键详解
2020/04/07 Python
全球性的在线商店:Vogca
2019/05/10 全球购物
澳大利亚最好的电动自行车:Leon Cycle
2020/12/19 全球购物
描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理
2015/03/25 面试题
北京一家公司的.net开发工程师笔试题
2012/04/17 面试题
山海经纬软件测试笔试题和面试题
2013/04/02 面试题
银行门卫岗位职责
2013/12/29 职场文书
2015年学生资助工作总结
2015/05/25 职场文书
2015中秋节晚会开场白
2015/07/30 职场文书
会计岗位工作总结
2015/08/12 职场文书
MySql存储过程之逻辑判断和条件控制
2021/05/26 MySQL
mysql聚集索引、辅助索引、覆盖索引、联合索引的使用
2022/02/12 MySQL