国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

JavaScript自執(zhí)行函數(shù)和jQuery擴展方法詳解

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 22:26:45
文檔

JavaScript自執(zhí)行函數(shù)和jQuery擴展方法詳解

JavaScript自執(zhí)行函數(shù)和jQuery擴展方法詳解:我們通常將JS代碼寫在一個單獨的JS文件中,然后在頁面中引入該文件。但是,有時候引入后會碰到變量名或函數(shù)名與其它JS代碼沖突的問題。那么如何解決這個問題呢?作用域隔離。在JS中,作用域是通過函數(shù)來劃分的,將JS代碼封裝到函數(shù)中進(jìn)行調(diào)用可以避免變量名/
推薦度:
導(dǎo)讀JavaScript自執(zhí)行函數(shù)和jQuery擴展方法詳解:我們通常將JS代碼寫在一個單獨的JS文件中,然后在頁面中引入該文件。但是,有時候引入后會碰到變量名或函數(shù)名與其它JS代碼沖突的問題。那么如何解決這個問題呢?作用域隔離。在JS中,作用域是通過函數(shù)來劃分的,將JS代碼封裝到函數(shù)中進(jìn)行調(diào)用可以避免變量名/

我們通常將JS代碼寫在一個單獨的JS文件中,然后在頁面中引入該文件。但是,有時候引入后會碰到變量名或函數(shù)名與其它JS代碼沖突的問題。那么如何解決這個問題呢?作用域隔離。在JS中,作用域是通過函數(shù)來劃分的,將JS代碼封裝到函數(shù)中進(jìn)行調(diào)用可以避免變量名/函數(shù)名沖突的問題,但是這也并不是萬無一失,因為封裝函數(shù)本身有可能和其它函數(shù)重名,解決方案:自執(zhí)行函數(shù)。

自執(zhí)行函數(shù)是用一對圓括號將匿名函數(shù)包起來,加括號(傳參)會立即執(zhí)行。因為函數(shù)無名字,實現(xiàn)了作用域的絕對隔離和函數(shù)名的沖突問題。基本形式如下:

(function () {
 console.log('do something');
})();

比如我們在custome.js文件中寫了一些JS邏輯,并封裝到函數(shù)init中。我們用自執(zhí)行函數(shù)將自己定義的函數(shù)init包起來,就像下面這樣。

(function () {

 function init() {
 console.log('execute init...');
 }

 init();
})();

當(dāng)我們在html中引入custome.js:<script src="custome.js"></script>,自執(zhí)行函數(shù)會立即執(zhí)行,進(jìn)而執(zhí)行內(nèi)部定義的init函數(shù):

不過,自執(zhí)行函數(shù)立即執(zhí)行的特性,使其很難調(diào)用。通過定義jQuery擴展方法,可以解決這一問題,拿到自執(zhí)行函數(shù)調(diào)用和執(zhí)行的主動權(quán)。

首先我們看一下定義jQuery擴展方法的基本形式:

jQuery.extend({
 'myMethod': function () {
 console.log('do something');
 }
});

這樣,通過$.myMethod()或jQuery.myMethod()就可以調(diào)用上面定義的方法。

定義jQuery擴展方法還有另外一種方式:.fn

jQuery.fn.extend({
 'myMethod': function () {
 console.log('do something');;
 }
});

通過如上方式定義的擴展方法,需要通過jQuery選擇器調(diào)用,比如通過標(biāo)簽選擇器$("button").myMethod(args)

了解了JS自執(zhí)行函數(shù)和jQuery擴展方法后,我們將二者結(jié)合起來。

下面我們利用自執(zhí)行函數(shù)立即執(zhí)行的特點,來定義jQuery擴展方法:

(function (jq) {

 function init() {
 console.log('do something');
 }

 jq.extend({
 'myMethod': function () {
 init();
 }
 })
})(jQuery);

說明,這個自執(zhí)行函數(shù)接收jQuery對象作為參數(shù),然后在內(nèi)部為jQuery定義一個擴展方法myMethod,該方法執(zhí)行真正的邏輯代碼init函數(shù)

調(diào)用:

<script src="jquery-3.2.1.js"></script>
<script src="custome.js"></script>
<script>

 $(function () {
 $.myMethod();
 });

</script>

說明:

jQuery文件引入后,jQuery對象全局可用;
緊接著引入自定義JS文件custome.js,其中的自執(zhí)行函數(shù)接收jQuery對象為參數(shù),立即執(zhí)行,在內(nèi)部為jQuery定義一個擴展方法myMethod
然后我們就可以在頁面加載完成后,通過調(diào)用$.meMethod()或jQuery.myMethod()來執(zhí)行init函數(shù)

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

JavaScript自執(zhí)行函數(shù)和jQuery擴展方法詳解

JavaScript自執(zhí)行函數(shù)和jQuery擴展方法詳解:我們通常將JS代碼寫在一個單獨的JS文件中,然后在頁面中引入該文件。但是,有時候引入后會碰到變量名或函數(shù)名與其它JS代碼沖突的問題。那么如何解決這個問題呢?作用域隔離。在JS中,作用域是通過函數(shù)來劃分的,將JS代碼封裝到函數(shù)中進(jìn)行調(diào)用可以避免變量名/
推薦度:
標(biāo)簽: 方法 js 和方法
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 国产欧美综合在线观看第七页 | 国产欧美成人一区二区三区 | 国产一级一级一级成人毛片 | 精品欧美一区二区三区精品久久 | 亚洲国产精品视频 | 伊人一区 | 亚洲欧美另类第一页 | 欧美亚洲一区二区三区在线 | 国精产品一区 | 中文在线视频 | 亚洲欧美日本综合 | 国产精品久久久久久一区二区三区 | 国产观看| 操比网站 | 久久国产成人精品国产成人亚洲 | 精品一区视频 | 亚洲视频在线观看免费 | 国产在线精品一区二区三区 | 日韩电影第一页 | 欧美.com| 国产网站在线 | 亚洲精彩视频在线观看 | 国产精品久久久久激情影院 | 成人国产精品免费网站 | 欧美一区二区在线播放 | 国产福利一区二区三区 | 在线亚洲欧美 | 国产精品久久久久999 | 久久久久久综合成人精品 | 国产亚洲第一页 | 国产热久久精 | 亚洲素人在线 | 久久国产精品成人免费古装 | 一区二区三区成人 | 一级成人毛片免费观看 | 欧美整片第一页 | 国产第八页 | 国产国语高清在线视频二区 | 日韩欧美网站 | 九九久久国产精品大片 | 在线亚洲精品国产成人二区 |