简单谈谈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操作Select 简单方便 一个js插件搞定
Nov 12 Javascript
Javascript/Jquery——简单定时器的多种实现方法
Jul 03 Javascript
PHP+jQuery+Ajax+Mysql如何实现发表心情功能
Aug 06 Javascript
js仿3366小游戏选字游戏
Apr 14 Javascript
JavaScript蒙板(model)功能的简单实现代码
Aug 04 Javascript
javaScript中定义类或对象的五种方式总结
Dec 04 Javascript
详解使用Vue.Js结合Jquery Ajax加载数据的两种方式
Jan 10 Javascript
AngularJS实现表单验证功能详解
Oct 12 Javascript
浅析微信扫码登录原理(小结)
Oct 29 Javascript
解决layer.open后laydate失效的问题
Sep 06 Javascript
Vue组件通信中非父子组件传值知识点总结
Dec 05 Javascript
Element Alert警告的具体使用方法
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
山进SANGEAN ATS-909X电路分析
2021/03/02 无线电
PHP之sprintf函数用法详解
2014/11/12 PHP
THINKPHP2.0到3.0有哪些改进之处
2015/01/04 PHP
PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
2016/01/07 PHP
PHP7+Nginx的配置与安装教程详解
2016/05/10 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
php实现统计二进制中1的个数算法示例
2018/01/23 PHP
PHP时间函数使用详解
2019/03/21 PHP
javascript event 事件解析
2011/01/31 Javascript
jquery如何实现在加载完iframe的内容后再进行操作
2013/09/10 Javascript
JavaScript不使用prototype和new实现继承机制
2014/12/29 Javascript
jQuery中[attribute^=value]选择器用法实例
2014/12/31 Javascript
js面向对象之公有、私有、静态属性和方法详解
2015/04/17 Javascript
JavaScript中的Promise使用详解
2015/06/24 Javascript
整理Javascript函数学习笔记
2015/12/01 Javascript
js实现(全选)多选按钮的方法【附实例】
2016/03/30 Javascript
jQuery获取file控件中图片的宽高与大小
2016/08/04 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的方法
2016/11/29 Javascript
Websocket协议详解及简单实例代码
2016/12/12 Javascript
ES6学习教程之Map的常用方法总结
2017/08/03 Javascript
详解vue文件中使用echarts.js的两种方式
2018/10/18 Javascript
详解js常用分割取字符串的方法
2019/05/15 Javascript
在vue中配置不同的代理同时访问不同的后台操作
2020/09/11 Javascript
axios封装与传参示例详解
2020/10/18 Javascript
python 中的divmod数字处理函数浅析
2017/10/17 Python
Python实现快速计算词频功能示例
2018/06/25 Python
python 画函数曲线示例
2019/12/04 Python
HTML5 拖拽批量上传文件的示例代码
2018/03/28 HTML / CSS
MONNIER Frères英国官网:源自巴黎女士奢侈品配饰电商平台
2018/12/06 全球购物
老总助理工作岗位职责
2014/02/06 职场文书
2014年五四青年节活动策划书
2014/04/22 职场文书
英文商务邀请函范文
2015/01/31 职场文书
母亲节寄语大全
2015/02/27 职场文书
沂蒙六姐妹观后感
2015/06/08 职场文书
如何搭建 MySQL 高可用高性能集群
2021/06/21 MySQL
MySQL高级进阶sql语句总结大全
2022/03/16 MySQL