简单谈谈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技术技巧大全(五)
Jan 22 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 语法
Jan 09 Javascript
javascript动态修改Li节点值的方法
Jan 20 Javascript
JavaScript+html5 canvas实现图片破碎重组动画特效
Feb 22 Javascript
JS获取当前使用的浏览器名字以及版本号实现方法
Aug 19 Javascript
Angularjs之filter过滤器(推荐)
Nov 27 Javascript
vue.js实现数据动态响应 Vue.set的简单应用
Jun 15 Javascript
vue轮播图插件vue-awesome-swiper的使用代码实例
Jul 10 Javascript
Vue filter格式化时间戳时间成标准日期格式的方法
Sep 16 Javascript
Vue使用Canvas绘制图片、矩形、线条、文字,下载图片
Apr 26 Javascript
vue 解决路由只变化参数页面组件不更新问题
Nov 05 Javascript
js中Object.create实例用法详解
Oct 05 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
这东西价格,可以买几台TECSUN S-2000
2021/03/02 无线电
兼容PHP5的PHP目录管理函数库
2008/07/10 PHP
PHP静态文件生成类实例
2014/11/29 PHP
php将html转成wml的WAP标记语言实例
2015/07/08 PHP
php生成图片验证码的方法
2016/04/15 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
用php定义一个数组最简单的方法
2019/10/04 PHP
鼠标悬浮显示二级菜单效果的jquery实现
2014/10/29 Javascript
jquery中用jsonp实现搜索框功能
2016/10/18 Javascript
JavaScript中在光标处插入添加文本标签节点的详细方法
2017/03/22 Javascript
JS检测是否可以访问公网服务器功能代码
2017/06/19 Javascript
vue 将页面公用的头部组件化的方法
2017/12/18 Javascript
vue+element-ui动态生成多级表头的方法
2018/08/28 Javascript
Puppet的一些技巧
2018/09/17 Javascript
vue webpack开发访问后台接口全局配置的方法
2018/09/18 Javascript
jquery validate 实现动态增加/删除验证规则操作示例
2019/10/28 jQuery
vue 封装面包屑组件教程
2020/11/16 Javascript
Python删除指定目录下过期文件的2个脚本分享
2014/04/10 Python
tensorflow构建BP神经网络的方法
2018/03/12 Python
python opencv 图像尺寸变换方法
2018/04/02 Python
Win7 64位下python3.6.5安装配置图文教程
2020/10/27 Python
修改Pandas的行或列的名字(重命名)
2019/12/18 Python
Python爬虫:Request Payload和Form Data的简单区别说明
2020/04/30 Python
英国网上花店:Bunches
2016/11/29 全球购物
美国一家运动专业鞋类零售商:Warehouse Shoe Sale(WSS)
2018/03/28 全球购物
Infababy英国:婴儿推车、Travel System婴儿车和婴儿汽车座椅销售
2018/05/23 全球购物
android面试问题与答案
2016/12/27 面试题
法学毕业生自荐信
2013/11/13 职场文书
大学考试作弊检讨书
2014/01/30 职场文书
《乌塔》教学反思
2014/02/17 职场文书
班级德育工作实施方案
2014/02/21 职场文书
人力资源部门的主要职能
2014/02/22 职场文书
煤矿安全演讲稿
2014/05/09 职场文书
幼儿园小班教师个人工作总结
2015/02/06 职场文书
军事博物馆观后感
2015/06/05 职场文书
详解CSS3.0(Cascading Style Sheet) 层叠级联样式表
2021/07/16 HTML / CSS