简单谈谈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的语言特性分析
Apr 11 Javascript
node.js中的buffer.slice方法使用说明
Dec 10 Javascript
JavaScript使用DeviceOne开发实战(四)仿优酷视频应用
Dec 02 Javascript
window.onload绑定多个事件的两种解决方案
May 15 Javascript
CSS3 3D 技术手把手教你玩转
Sep 02 Javascript
jQuery实现table表格信息的展开和缩小功能示例
Jul 21 jQuery
webuploader实现上传图片到服务器功能
Aug 16 Javascript
小程序云开发获取不到数据库记录的解决方法
May 18 Javascript
详解vue-cli@2.x项目迁移日志
Jun 06 Javascript
vue 动态组件用法示例小结
Mar 06 Javascript
vue实现标签云效果的示例
Nov 09 Javascript
jquery实现鼠标悬浮弹出气泡提示框
Dec 23 jQuery
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
完美解决:Apache启动问题―(OS 10022)提供了一个无效的参数
2013/06/08 PHP
php使用pack处理二进制文件的方法
2014/07/03 PHP
PHP 出现 http500 错误的解决方法
2021/03/09 PHP
Valerio 发布了 Mootools
2006/09/23 Javascript
JavaScript 全面解析各种浏览器网页中的JS 执行顺序
2009/02/17 Javascript
用Javascript数组处理多个字符串的连接问题
2009/08/20 Javascript
基于jquery的blockui插件显示弹出层
2011/04/14 Javascript
jQuery对表单元素的取值和赋值操作代码
2011/05/19 Javascript
基于JQuery实现的类似购物商城的购物车
2011/12/06 Javascript
Json序列化和反序列化方法解析
2013/12/19 Javascript
基于JavaScript实现Json数据根据某个字段进行排序
2015/11/24 Javascript
全面解析JavaScript的Backbone.js框架中的Router路由
2016/05/05 Javascript
JS组件Bootstrap Select2使用方法解析
2016/05/30 Javascript
又一款js时钟!transform实现时钟效果
2016/08/15 Javascript
Javascript this 函数深入详解
2016/12/13 Javascript
JS实现浏览器打印、打印预览示例
2017/02/28 Javascript
微信小程序中页面FOR循环和嵌套循环
2017/06/21 Javascript
微信小程序之选项卡的实现方法
2017/09/29 Javascript
vue 动态给每个页面添加title、关键词和描述的方法
2020/08/28 Javascript
python自动发邮件库yagmail的示例代码
2018/02/23 Python
Python基于jieba库进行简单分词及词云功能实现方法
2018/06/16 Python
Python生成器generator用法示例
2018/08/10 Python
python三方库之requests的快速上手
2019/03/04 Python
python远程连接MySQL数据库
2019/04/19 Python
使用APScheduler3.0.1 实现定时任务的方法
2019/07/22 Python
给Django Admin添加验证码和多次登录尝试限制的实现
2020/07/26 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
2020/12/14 Python
CSS3常用的几种颜色渐变模式总结
2016/11/18 HTML / CSS
Wojas罗马尼亚网站:波兰皮鞋品牌
2018/11/01 全球购物
资料员的岗位职责
2013/11/20 职场文书
办公室内勤工作职责
2013/12/11 职场文书
宣传保护环境的公益广告词
2014/03/13 职场文书
黄金酒广告词
2014/03/21 职场文书
优秀团员事迹材料2000字
2014/08/20 职场文书
购房个人委托书范本
2014/10/11 职场文书
2016年社区国庆节活动总结
2016/04/01 职场文书