<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題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關鍵字專題關鍵字專題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
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        JavaScript自執行函數和jQuery擴展方法詳解

        來源:懂視網 責編:小采 時間:2020-11-27 22:26:45
        文檔

        JavaScript自執行函數和jQuery擴展方法詳解

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

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

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

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

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

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

        當我們在html中引入custome.js:<script src="custome.js"></script>,自執行函數會立即執行,進而執行內部定義的init函數:

        不過,自執行函數立即執行的特性,使其很難調用。通過定義jQuery擴展方法,可以解決這一問題,拿到自執行函數調用和執行的主動權。

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

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

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

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

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

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

        了解了JS自執行函數和jQuery擴展方法后,我們將二者結合起來。

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

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

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

        調用:

        <script src="jquery-3.2.1.js"></script>
        <script src="custome.js"></script>
        <script>
        
         $(function () {
         $.myMethod();
         });
        
        </script>
        
        

        說明:

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

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

        文檔

        JavaScript自執行函數和jQuery擴展方法詳解

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

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲色成人四虎在线观看| 免费国产精品视频| 99久久亚洲综合精品成人网| 国产精品亚洲专区无码唯爱网| 亚洲男人的天堂www| 免费大片av手机看片| 免费一级特黄特色大片在线观看 | 亚洲 无码 在线 专区| 久久精品国产亚洲av高清漫画 | a级片免费观看视频| 成人毛片100免费观看| 成人免费视频国产| 国产亚洲精品免费| 国产精彩免费视频| 亚洲婷婷在线视频| 中文字幕版免费电影网站| 在线播放亚洲第一字幕| 很黄很污的网站免费| 免费看的成人yellow视频| 亚洲精品成人在线| 亚洲国产精品人久久电影| 台湾一级毛片永久免费| 国产亚洲精品久久久久秋霞| 三年片免费观看大全国语| 亚洲va在线va天堂va不卡下载| 免费在线观看视频网站| 亚洲精品色播一区二区 | 一区二区免费视频| 亚洲成A人片在线观看WWW| 中国videos性高清免费| 亚洲欧洲精品一区二区三区| 亚洲国产成人久久精品大牛影视| 又大又硬又爽免费视频| a级毛片毛片免费观看永久| 亚洲成a人片在线观| 四虎免费永久在线播放| 无码国产精品一区二区免费16| 亚洲伊人久久精品| 亚洲无砖砖区免费| 婷婷精品国产亚洲AV麻豆不片| 每天更新的免费av片在线观看 |