简单谈谈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 相关文章推荐
JAVASCRIPT style 中visibility和display之间的区别
Jan 22 Javascript
JavaScript定时器详解及实例
Aug 01 Javascript
Android中的jQuery:AQuery简介
May 06 Javascript
jQuery的ready方法详解
Nov 27 Javascript
JS使用parseInt解析数字实现求和的方法
Aug 05 Javascript
javascript基础语法学习笔记
Jan 04 Javascript
浅谈JavaScript中小数和大整数的精度丢失
May 31 Javascript
json格式的javascript对象用法分析
Jul 04 Javascript
Axios学习笔记之使用方法教程
Jul 21 Javascript
js图片轮播插件的封装
Jul 21 Javascript
JS基于for语句编写的九九乘法表示例
Jan 04 Javascript
JavaScript原型式继承实现方法
Nov 06 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
PHP数字格式化
2006/12/06 PHP
php zend 相对路径问题
2009/01/12 PHP
PHP 读取文件内容代码(txt,js等)
2009/12/06 PHP
优化php效率,提高php性能的一些方法
2011/03/24 PHP
php中有关字符串的4个函数substr、strrchr、strstr、ereg介绍和使用例子
2014/04/24 PHP
php实现屏蔽掉黑帽SEO的搜索关键字
2015/04/15 PHP
php编程实现简单的网页版计算器功能示例
2017/04/26 PHP
jquery实现div拖拽宽度示例代码
2013/07/31 Javascript
深入理解JavaScript系列(28):设计模式之工厂模式详解
2015/03/03 Javascript
JavaScript模拟深蓝vs卡斯帕罗夫的国际象棋对局示例
2015/04/22 Javascript
JS实现选择TextArea内文本的方法
2015/08/03 Javascript
JS兼容所有浏览器的DOMContentLoaded事件
2018/01/12 Javascript
详解javascript appendChild()的完整功能
2018/08/18 Javascript
node 解析图片二维码的内容代码实例
2019/09/11 Javascript
微信小程序订阅消息(java后端实现)开发
2020/06/01 Javascript
nuxt 实现在其它js文件中使用store的方式
2020/11/05 Javascript
在Python中操作字典之update()方法的使用
2015/05/22 Python
判断网页编码的方法python版
2016/08/12 Python
Python学习入门之区块链详解
2017/07/25 Python
Python对字符串实现去重操作的方法示例
2017/08/11 Python
Python基于回溯法子集树模板解决找零问题示例
2017/09/11 Python
pandas.DataFrame.to_json按行转json的方法
2018/06/05 Python
python使用matplotlib画饼状图
2018/09/25 Python
对Python 窗体(tkinter)文本编辑器(Text)详解
2018/10/11 Python
python微信好友数据分析详解
2018/11/19 Python
python实现图像全景拼接
2020/03/27 Python
Python中内建模块collections如何使用
2020/05/27 Python
德国宠物用品、宠物食品及水族馆网上商店:ZooRoyal
2017/07/09 全球购物
美国购买体育、音乐会和剧院门票网站:SelectATicket
2019/09/08 全球购物
建筑施工实习自我鉴定
2013/09/19 职场文书
厨师长岗位职责
2014/03/02 职场文书
党员廉政准则心得体会
2016/01/20 职场文书
会议承办单位欢迎词
2019/07/09 职场文书
教你修复 Win11应用商店加载空白问题
2021/12/06 数码科技
Vue自定义铃声提示音组件的实现
2022/01/22 Vue.js
Java实现给Word文件添加文字水印
2022/02/15 Java/Android