日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2023/12/13 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 区别 (function($){...})(jQuery)、$(function(){ })和$.fn 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、(function($){…})(jQuery)
首先f(wàn)unction(arg){...}定義了一個(gè)匿名函數(shù),參數(shù)為arg,而調(diào)用時(shí)需要在函數(shù)后面寫上括號(hào)和實(shí)參,由于操作符的優(yōu)先級(jí),函數(shù)本身也需要括號(hào),也就成了:
(function(arg){...})(param)
這就相當(dāng)于定義了一個(gè)參數(shù)為arg的匿名函數(shù),并將param作為參數(shù)來(lái)調(diào)用這個(gè)匿名函數(shù)
而(function($){...})(jQuery)則是一樣的,之所以只在形參使用$,是為了不與其他庫(kù)沖突,所以實(shí)參用jQuery,其實(shí)就等于其實(shí)可以這么理解,不過(guò)要注意的是fn是不存在的,函數(shù)直接定義,然后就運(yùn)行了,然后就壓縮成如下:

(function($){...})(jQuery)

二、$(function(){})
是$(document).ready(function(){...})的簡(jiǎn)寫形式,意思就是頁(yè)面載入后執(zhí)行其中的代碼,也可以被寫成:

jQuery(function(){...}); jQuery(document).ready(function(){...})

兩者相比:
jQuery(function(){...});用于存放操作DOM對(duì)象的代碼,執(zhí)行其中代碼時(shí)DOM對(duì)象已經(jīng)存在。不可用于存放開發(fā)插件的代碼,因?yàn)閖Query對(duì)象沒有得到傳遞,外部通過(guò)jQuery.method也調(diào)用不了其中的方法(函數(shù))。
(function(){...}(jQuery);用于存放開發(fā)插件的代碼,執(zhí)行其中代碼時(shí)DOM不一定存在,所以直接自動(dòng)執(zhí)行DOM操作的代碼,請(qǐng)小心使用。
簡(jiǎn)單理解是(function($){...})(jQuery)用來(lái)定義一些需要預(yù)先定義好的函數(shù)
$(function(){...})則是用來(lái)在DOM加載完成之后運(yùn)行/執(zhí)行那些預(yù)先定義好的函數(shù)。

開發(fā)jQuery插件時(shí),一般先看jQuery(function(){...}),意義為在DOM加載完畢后執(zhí)行了ready()方法,再看(function(){...})(jQuery).

三、$.fn
$.fn是指jQuery的命名空間,加上fn的方法及屬性,會(huì)對(duì)每一個(gè)jquery實(shí)例有效。
如定義了$.fn.initPageMe(),即對(duì)jQuery擴(kuò)展了一個(gè)abc方法,那么后面你的每一個(gè)jQuery實(shí)例都可以引用這個(gè)方法了。

$.fn.initPageMe=function(opts){...}; //定義擴(kuò)展方法 $(function(){$(".pageMe").initPageMe(); //調(diào)用擴(kuò)展方法 })

四、$與$.fn
$是jQuery的一種表現(xiàn)形式。
jQuery的擴(kuò)展方式有:

1.$.func1=function(){} 2.$.extend({func1:function(){}}) 3.$.fn.func1=function(){} 4.$.fn.extent({func1:function(){}})

$拓展的方法是靜態(tài)方法,可以使用$直接調(diào)用,其拓展的方式有兩種,一般使用$.extend({});;而$.fn拓展的方法是實(shí)例方法,必須由“對(duì)象”$("")來(lái)調(diào)用,其拓展的方式同樣有兩種,一般使用$.fn.extend({ })。

其中,fn與prototype等同使用;jQuery.fn = jQuery.prototype

總結(jié)

以上是生活随笔為你收集整理的区别 (function($){...})(jQuery)、$(function(){ })和$.fn的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。