日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

区别 (function($){...})(jQuery)、$(function(){ })和$.fn

發布時間:2023/12/13 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 区别 (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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。