区别 (function($){...})(jQuery)、$(function(){ })和$.fn
一、(function($){…})(jQuery)
首先function(arg){...}定义了一个匿名函数,参数为arg,而调用时需要在函数后面写上括号和实参,由于操作符的优先级,函数本身也需要括号,也就成了:
(function(arg){...})(param)
这就相当于定义了一个参数为arg的匿名函数,并将param作为参数来调用这个匿名函数
而(function($){...})(jQuery)则是一样的,之所以只在形参使用$,是为了不与其他库冲突,所以实参用jQuery,其实就等于其实可以这么理解,不过要注意的是fn是不存在的,函数直接定义,然后就运行了,然后就压缩成如下:
(function($){...})(jQuery)
二、$(function(){})
是$(document).ready(function(){...})的简写形式,意思就是页面载入后执行其中的代码,也可以被写成:
jQuery(function(){...});
jQuery(document).ready(function(){...})
两者相比:
jQuery(function(){...});用于存放操作DOM对象的代码,执行其中代码时DOM对象已经存在。不可用于存放开发插件的代码,因为jQuery对象没有得到传递,外部通过jQuery.method也调用不了其中的方法(函数)。
(function(){...}(jQuery);用于存放开发插件的代码,执行其中代码时DOM不一定存在,所以直接自动执行DOM操作的代码,请小心使用。
简单理解是(function($){...})(jQuery)用来定义一些需要预先定义好的函数
$(function(){...})则是用来在DOM加载完成之后运行/执行那些预先定义好的函数。
开发jQuery插件时,一般先看jQuery(function(){...}),意义为在DOM加载完毕后执行了ready()方法,再看(function(){...})(jQuery).
三、$.fn
$.fn是指jQuery的命名空间,加上fn的方法及属性,会对每一个jquery实例有效。
如定义了$.fn.initPageMe(),即对jQuery扩展了一个abc方法,那么后面你的每一个jQuery实例都可以引用这个方法了。
$.fn.initPageMe=function(opts){...}; //定义扩展方法
$(function(){$(".pageMe").initPageMe(); //调用扩展方法
})
四、$与$.fn
$是jQuery的一种表现形式。
jQuery的扩展方式有:
1.$.func1=function(){}
2.$.extend({func1:function(){}})
3.$.fn.func1=function(){}
4.$.fn.extent({func1:function(){}})
$拓展的方法是静态方法,可以使用$直接调用,其拓展的方式有两种,一般使用$.extend({});;而$.fn拓展的方法是实例方法,必须由“对象”$("")来调用,其拓展的方式同样有两种,一般使用$.fn.extend({ })。
其中,fn与prototype等同使用;jQuery.fn = jQuery.prototype
区别 (function($){...})(jQuery)、$(function(){ })和$.fn相关推荐
- jQuery 请指出'$'和'$.fn'的区别?或者说出'$.fn'的用途。
http://hi.baidu.com/chy0806css/item/acc52425099c30ff50fd87eb Jquery为开发插件提供了两个方法,分别是: $.extend(obj);$ ...
- (function($){...})(jQuery)、$(function(){ })和$.fn
部分转自:http://blog.csdn.net/rambo_china/article/details/7742321 表示感谢! (function($){-})(jQuery) 首先funct ...
- JQuery添加扩展方法(理解$.extend(),与$.fn.extend()方法区别)
为什么80%的码农都做不了架构师?>>> 理解$.extend(),与$.fn.extend()方法区别 1.$.extend()方法 $.extend()方法在JQuery中 ...
- jquery的2.0.3版本源码系列(2):21行-94行定义了一些变量和函数 jQuery=function(){}
2.1.bug通过索引查询 这里的#13335是bug的索引,如何查询呢? 第一步,浏览器地址栏输入"https://bugs.jquery.com/". 第二步,在网页的搜索框里 ...
- JS 实现 jQuery的$(function(){});
1.浏览器渲染引擎的HTML解析流程 何谓"渲染",其实就是浏览器把请求到的HTML内容显示出来的过程.渲染引擎首先通过网络获得所请求文档的内容,通常以8K分块的方式完成.下面是渲 ...
- js的一些function
/** * * 根据秒数返回 一个日期范围 * timerFilter(10) */ function timerFilter(n) {let days = 31; // 一月多少天const one ...
- jQuery中$(function(){})与(function($){})(jQuery)、$(document).ready(function(){})等的区别详细讲解
1.(function($) {-})(jQuery); 1).原理: 这实际上是匿名函数,如下: function(arg){-} 这就定义了一个匿名函数,参数为arg 而调用函数时,是在函数后面写 ...
- jQuery插件开发全解析,jQuery.extend , (function($){ , $.fn.pluginName
序:匿名函数,匿名函数没有实际名字,也没有指针,怎么执行滴? 其实大家可以看看小括号的意义就应该可以理解.小括号有返回值,也就是小括号内的函数或者表达式的返回值,所以说小括号内的function返回值 ...
- 前端之jquery-jQuery中$(function(){})与(function($){})(jQuery)、$(document).ready(function(){})区别
1.(function($){...})(jQuery);(1).原理:这实际上是匿名函数,如下:function(arg){...}这就定义了一个匿名函数,参数为arg:而调用函数是,是在函数后面写 ...
最新文章
- [html] W3C--span is a nested element.
- c#: 协变和逆变深度解析
- Python3 isspace()方法
- 电路原理解析_接近开关检测旋转设备的工作原理
- 具体案例 快速原型模型_3D快速成型技术需要传统加工方法30%~50%的工时和20%~35%的成本,可以如此地降低成本?...
- java1.8下载安装教程
- 黑马程序员Java零基础视频教程(2022最新Java)B站视频学习笔记-Day8-面向对象
- 单细胞分析实录(18): 基于CellPhoneDB的细胞通讯分析及可视化 (上篇)
- 成为JAVA架构师必看书籍推荐
- Day10.事件下(学习日记10)
- 二层设备与三层设备的区别
- [信息论与编码]离散信源及其信息测度(2)
- 微信小程序实现登陆功能
- Docker安装教程(超详细)
- Git版本回退的最佳方式
- 数据库专题 数据库适配问题--人大金仓数据库适配问题总结(kingbase8)
- Java equal
- 试述3种基本结构的特点,请另外设计两种基本结构
- IDEA 轻松实现线上debug 调试
- 解决win系统点击右键时鼠标一直不停转圈操作
热门文章
- 洛谷P1217 回文质数
- 洛谷 P1352 没有上司的舞会(树形 DP)
- 基本机器学习面试问题 --- 理论/算法2
- 微信公众号接口添加菜单时错误(errcode:40017 invalid button type)
- 如何正确选择合适的贷款机构,避免征信花掉?
- 说不尽的嘎达梅林:读郭雪波的长篇小说《青旗•嘎达梅林》
- CRectTracker类的使用方法及其静态库下CRectTracker无法显示鼠标光标解决方案
- 大数据职业理解_到底什么是大数据,大数据职业的具体工作内容是什么?
- mysql优化模糊查询_MySQL的LIKE模糊查询优化
- 信号灯文件锁linux线程,linux——线程同步(互斥量、条件变量、信号灯、文件锁)...