简单谈谈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 EasyUI 对话框的使用方法
Oct 24 Javascript
合并table相同单元格的jquery插件分享(很精简)
Jun 20 Javascript
jQuery ajax(复习)—Baidu ajax request分离版
Jan 24 Javascript
javascript操作css属性
Dec 30 Javascript
node.js中的fs.symlinkSync方法使用说明
Dec 15 Javascript
jqGrid表格应用之新增与删除数据附源码下载
Dec 02 Javascript
jquery ajax分页插件的简单实现
Jan 27 Javascript
jQuery 获取屏幕高度、宽度的简单实现案例
May 17 Javascript
详解VUE 数组更新
Dec 16 Javascript
使用selenium抓取淘宝的商品信息实例
Feb 06 Javascript
Js中将Long转换成日期格式的实现方法
Jun 05 Javascript
JavaScript中set与get方法用法示例
Aug 15 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
为查询结果建立向后/向前按钮
2006/10/09 PHP
hadoop中一些常用的命令介绍
2013/06/19 PHP
PHP连接局域网MYSQL数据库的简单实例
2013/08/26 PHP
根据ip调用新浪api获取城市名并转成拼音
2014/03/07 PHP
thinkphp配置文件路径的实现方法
2016/08/30 PHP
PHP+Redis链表解决高并发下商品超卖问题(实现原理及步骤)
2020/08/03 PHP
javascript编程起步(第四课)
2007/01/10 Javascript
js 屏蔽鼠标右键脚本附破解方法
2009/12/03 Javascript
Javascript动态创建表格及删除行列的方法
2015/05/15 Javascript
js实现图片点击左右轮播
2015/07/08 Javascript
AngularJs Javascript MVC 框架
2016/06/20 Javascript
JS库之Waypoints的用法详解
2017/09/13 Javascript
Layui弹出层 加载 做编辑页面的方法
2019/09/16 Javascript
[00:17]DOTA2荣耀之路5:It’s a disastah!
2018/05/28 DOTA
Python制作CSDN免积分下载器
2015/03/10 Python
python根据出生日期获得年龄的方法
2015/03/31 Python
Python中编写ORM框架的入门指引
2015/04/29 Python
用pickle存储Python的原生对象方法
2017/04/28 Python
Django中针对基于类的视图添加csrf_exempt实例代码
2018/02/11 Python
python3 flask实现文件上传功能
2020/03/20 Python
python3 selenium自动化 下拉框定位的例子
2019/08/23 Python
使用卷积神经网络(CNN)做人脸识别的示例代码
2020/03/27 Python
python 如何上传包到pypi
2020/12/24 Python
python pygame 愤怒的小鸟游戏示例代码
2021/02/25 Python
澳大利亚排名第一的狂热牛仔品牌:ONETEASPOON
2018/11/20 全球购物
法国面料和小百货在线商店:Mondial Tissus
2019/03/23 全球购物
Fabletics官网:美国运动服饰品牌,由好莱坞女演员凯特·哈德森创立
2019/10/19 全球购物
学生的自我鉴定范文
2013/10/24 职场文书
楼面经理岗位职责范本
2014/02/18 职场文书
文秘档案管理岗位职责
2014/03/06 职场文书
村干部群众路线教育活动对照检查材料
2014/10/01 职场文书
个人查摆问题整改措施
2014/10/04 职场文书
2014年党支部工作总结
2014/11/13 职场文书
2014个人年度工作总结
2014/12/15 职场文书
团组织推优材料
2014/12/29 职场文书
Vue.js中v-bind指令的用法介绍
2022/03/13 Vue.js