一、(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相关推荐

  1. jQuery 请指出'$'和'$.fn'的区别?或者说出'$.fn'的用途。

    http://hi.baidu.com/chy0806css/item/acc52425099c30ff50fd87eb Jquery为开发插件提供了两个方法,分别是: $.extend(obj);$ ...

  2. (function($){...})(jQuery)、$(function(){ })和$.fn

    部分转自:http://blog.csdn.net/rambo_china/article/details/7742321 表示感谢! (function($){-})(jQuery) 首先funct ...

  3. JQuery添加扩展方法(理解$.extend(),与$.fn.extend()方法区别)

    为什么80%的码农都做不了架构师?>>>    理解$.extend(),与$.fn.extend()方法区别 1.$.extend()方法 $.extend()方法在JQuery中 ...

  4. jquery的2.0.3版本源码系列(2):21行-94行定义了一些变量和函数 jQuery=function(){}

    2.1.bug通过索引查询 这里的#13335是bug的索引,如何查询呢? 第一步,浏览器地址栏输入"https://bugs.jquery.com/". 第二步,在网页的搜索框里 ...

  5. JS 实现 jQuery的$(function(){});

    1.浏览器渲染引擎的HTML解析流程 何谓"渲染",其实就是浏览器把请求到的HTML内容显示出来的过程.渲染引擎首先通过网络获得所请求文档的内容,通常以8K分块的方式完成.下面是渲 ...

  6. js的一些function

    /** * * 根据秒数返回 一个日期范围 * timerFilter(10) */ function timerFilter(n) {let days = 31; // 一月多少天const one ...

  7. jQuery中$(function(){})与(function($){})(jQuery)、$(document).ready(function(){})等的区别详细讲解

    1.(function($) {-})(jQuery); 1).原理: 这实际上是匿名函数,如下: function(arg){-} 这就定义了一个匿名函数,参数为arg 而调用函数时,是在函数后面写 ...

  8. jQuery插件开发全解析,jQuery.extend , (function($){ , $.fn.pluginName

    序:匿名函数,匿名函数没有实际名字,也没有指针,怎么执行滴? 其实大家可以看看小括号的意义就应该可以理解.小括号有返回值,也就是小括号内的函数或者表达式的返回值,所以说小括号内的function返回值 ...

  9. 前端之jquery-jQuery中$(function(){})与(function($){})(jQuery)、$(document).ready(function(){})区别

    1.(function($){...})(jQuery);(1).原理:这实际上是匿名函数,如下:function(arg){...}这就定义了一个匿名函数,参数为arg:而调用函数是,是在函数后面写 ...

最新文章

  1. [html] W3C--span is a nested element.
  2. c#: 协变和逆变深度解析
  3. Python3 isspace()方法
  4. 电路原理解析_接近开关检测旋转设备的工作原理
  5. 具体案例 快速原型模型_3D快速成型技术需要传统加工方法30%~50%的工时和20%~35%的成本,可以如此地降低成本?...
  6. java1.8下载安装教程
  7. 黑马程序员Java零基础视频教程(2022最新Java)B站视频学习笔记-Day8-面向对象
  8. 单细胞分析实录(18): 基于CellPhoneDB的细胞通讯分析及可视化 (上篇)
  9. 成为JAVA架构师必看书籍推荐
  10. Day10.事件下(学习日记10)
  11. 二层设备与三层设备的区别
  12. [信息论与编码]离散信源及其信息测度(2)
  13. 微信小程序实现登陆功能
  14. Docker安装教程(超详细)
  15. Git版本回退的最佳方式
  16. 数据库专题 数据库适配问题--人大金仓数据库适配问题总结(kingbase8)
  17. Java equal
  18. 试述3种基本结构的特点,请另外设计两种基本结构
  19. IDEA 轻松实现线上debug 调试
  20. 解决win系统点击右键时鼠标一直不停转圈操作

热门文章

  1. 洛谷P1217 回文质数
  2. 洛谷 P1352 没有上司的舞会(树形 DP)
  3. 基本机器学习面试问题 --- 理论/算法2
  4. 微信公众号接口添加菜单时错误(errcode:40017 invalid button type)
  5. 如何正确选择合适的贷款机构,避免征信花掉?
  6. 说不尽的嘎达梅林:读郭雪波的长篇小说《青旗•嘎达梅林》
  7. CRectTracker类的使用方法及其静态库下CRectTracker无法显示鼠标光标解决方案
  8. 大数据职业理解_到底什么是大数据,大数据职业的具体工作内容是什么?
  9. mysql优化模糊查询_MySQL的LIKE模糊查询优化
  10. 信号灯文件锁linux线程,linux——线程同步(互斥量、条件变量、信号灯、文件锁)...