JavaScript自執行函數與jQuery擴充方法
我們通常將JS程式碼寫在一個單獨的JS檔案中,然後在頁面中引入該檔案。但是,有時候引入後會碰到變數名稱或函數名稱與其它JS程式碼衝突的問題。那麼如何解決這個問題呢?作用域隔離。在JS中,作用域是透過函數來劃分的,將JS程式碼封裝到函數中進行呼叫可以避免變數名稱/函數名稱衝突的問題,但這也並不是萬無一失,因為封裝函數本身有可能和其它函數重名,解決方案:自執行函數。本文主要為大家詳細介紹了JavaScript自執行函數和jQuery擴充方法,具有一定的參考價值,有興趣的小夥伴們可以參考一下,希望能幫助到大家。
自執行函數是用一對圓括號將匿名函數包起來,加括號(傳參)會立即執行。因為函數無名字,實現了作用域的絕對隔離和函數名的衝突問題。基本形式如下:
(function () { console.log('do something'); })();
例如我們在custome.js檔案中寫了一些JS邏輯,並封裝到函數init中。我們用自執行函數將自己定義的函數init包起來,就像下面這樣。
(function () { function init() { console.log('execute init...'); } init(); })();
當我們在html中引入custome.js:,自執行函數會立即執行,進而執行內部定義的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函數
相關推薦:
javascript自執行函數之偽命名空間封裝法_javascript技巧
javascript中運用閉包和自執行函數解決大量的全域變數問題_javascript技巧
以上是JavaScript自執行函數與jQuery擴充方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

人臉偵測辨識技術已經是一個比較成熟且應用廣泛的技術。而目前最廣泛的網路應用語言非JS莫屬,在Web前端實現人臉偵測辨識相比後端的人臉辨識有優勢也有弱勢。優點包括減少網路互動、即時識別,大大縮短了使用者等待時間,提高了使用者體驗;弱勢是:受到模型大小限制,其中準確率也有限。如何在web端使用js實現人臉偵測呢?為了實現Web端人臉識別,需要熟悉相關的程式語言和技術,如JavaScript、HTML、CSS、WebRTC等。同時也需要掌握相關的電腦視覺和人工智慧技術。值得注意的是,由於Web端的計

jQuery中如何使用PUT請求方式?在jQuery中,發送PUT請求的方法與發送其他類型的請求類似,但需要注意一些細節和參數設定。 PUT請求通常用於更新資源,例如更新資料庫中的資料或更新伺服器上的檔案。以下是在jQuery中使用PUT請求方式的具體程式碼範例。首先,確保引入了jQuery庫文件,然後可以透過以下方式發送PUT請求:$.ajax({u

標題:jQuery小技巧:快速修改頁面所有a標籤的文字在網頁開發中,我們經常需要對頁面中的元素進行修改和操作。使用jQuery時,有時候需要一次修改頁面中所有a標籤的文字內容,這樣可以節省時間和精力。以下將介紹如何使用jQuery快速修改頁面所有a標籤的文本,同時給出具體的程式碼範例。首先,我們需要引入jQuery庫文件,確保在頁面中引入了以下程式碼:<

js和vue的關係:1、JS作為Web開發基石;2、Vue.js作為前端框架的崛起;3、JS與Vue的互補關係;4、JS與Vue的實踐應用。

jQuery如何移除元素的height屬性?在前端開發中,經常會遇到需要操作元素的高度屬性的需求。有時候,我們可能需要動態改變元素的高度,而有時候又需要移除元素的高度屬性。本文將介紹如何使用jQuery來移除元素的高度屬性,並提供具體的程式碼範例。在使用jQuery操作高度屬性之前,我們首先需要了解CSS中的height屬性。 height屬性用於設定元素的高度

標題:使用jQuery修改所有a標籤的文字內容jQuery是一款受歡迎的JavaScript庫,被廣泛用於處理DOM操作。在網頁開發中,經常會遇到需要修改頁面上連結標籤(a標籤)的文字內容的需求。本文將介紹如何使用jQuery來實現這個目標,並提供具體的程式碼範例。首先,我們需要在頁面中引入jQuery庫。在HTML檔案中加入以下程式碼:

jQuery是一種流行的JavaScript庫,被廣泛用於處理網頁中的DOM操作和事件處理。在jQuery中,eq()方法是用來選擇指定索引位置的元素的方法,具體使用方法和應用場景如下。在jQuery中,eq()方法選擇指定索引位置的元素。索引位置從0開始計數,即第一個元素的索引是0,第二個元素的索引是1,依此類推。 eq()方法的語法如下:$("s

如何判斷jQuery元素是否具有特定屬性?在使用jQuery操作DOM元素時,常會遇到需要判斷元素是否具有某個特定屬性的情況。在這種情況下,我們可以藉助jQuery提供的方法來輕鬆實現這項功能。以下將介紹兩種常用的方法來判斷一個jQuery元素是否具有特定屬性,並附上具體的程式碼範例。方法一:使用attr()方法和typeof運算子//判斷元素是否具有特定屬
