<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
        主站蜘蛛池模板: 亚洲国产二区三区久久| 亚洲人AV永久一区二区三区久久| 亚洲AV永久无码精品| 在线看片免费人成视频播| 亚洲av福利无码无一区二区| 久久青草免费91线频观看不卡| 亚洲精品蜜桃久久久久久| 国产色爽免费无码视频| 亚洲一区二区影院| 国产免费不卡v片在线观看| 日本亚洲精品色婷婷在线影院| 久久久久久免费视频| 亚洲国产区男人本色| 亚洲精品无码专区久久同性男| 亚洲精品偷拍视频免费观看| 亚洲高清国产拍精品26U| 69免费视频大片| 亚洲色欲色欲www在线播放| 国产精品深夜福利免费观看| 草久免费在线观看网站| 久久久无码精品亚洲日韩蜜桃| 95免费观看体验区视频| 亚洲欧美日韩综合久久久久| 免费在线观看的黄色网址| 久久久受www免费人成| 亚洲an天堂an在线观看| 最新欧洲大片免费在线| 免费看内射乌克兰女| 亚洲大片在线观看| 最近免费中文字幕视频高清在线看 | 黄色片在线免费观看| 日韩成人精品日本亚洲| 亚洲国产第一站精品蜜芽| 国产乱子精品免费视观看片| 色九月亚洲综合网| 亚洲AV成人无码久久精品老人| 夭天干天天做天天免费看| 免费成人在线电影| 亚洲国产区男人本色| 亚洲欧洲免费视频| 亚洲Aⅴ无码一区二区二三区软件|