當我在實作在線客服原始碼彈窗效果JavaScript SDK時,對外公開的SDK代碼就是使用的自執行函式的形式,
使用自執行函式來實作 JavaScript SDK 有以下好處:
-
封裝代碼:自執行函式可以將你的 JavaScript 代碼封裝起來,從而避免在全域作用域中定義變數,防止變數名稱沖突,
-
提供 API:自執行函式可以提供 API,方便呼叫者使用,例如,你可以在自執行函式中定義一些方法,然后將這些方法暴露給呼叫者使用,
-
控制變數作用域:自執行函式可以控制變數的作用域,從而避免在全域作用域中定義變數,這樣,你就可以在函式內部定義區域變數,避免對全域變數造成影響

自執行函式(IIFE)是指在定義完成后立即執行的函式,
自執行函式的語法形式如下:
(function() { // 函式體 })();
或者:
(function() { // 函式體 }());
自執行函式可以用來封裝你的 JavaScript 代碼,避免在全域作用域中定義變數,從而防止變數名稱沖突,
例如,你可以使用自執行函式來封裝你的 JavaScript 代碼,并在函式中定義區域變數,
例如:
(function() { // 在這里定義區域變數 const myLocalVariable = 'hello'; // 使用區域變數 console.log(myLocalVariable); })();
這樣,你就可以在自執行函式中定義區域變數,并避免在全域作用域中定義變數了,
自執行函式還可以傳遞引數,例如:
(function(param1, param2) { // 在這里使用函式引數 console.log(param1, param2); })('hello', 'world');
這樣,你就可以在自執行函式中傳遞引數了,
如果傳遞的引數是window
如果在自執行函式中傳遞 window 物件,并將一個屬性賦值給 window 物件,則該屬性將成為全域變數,
例如,你可以使用如下代碼來定義一個全域變數:
(function(global) { global.myGlobalVariable = 'hello'; })(window);
這樣,你就可以在全域作用域中訪問 myGlobalVariable 變數了,
自執行函式還有另外一種寫法,即 !function,
!function() { // 函式體 }();
這種寫法與上述自執行函式的寫法類似,但是在函式定義前使用了一個感嘆號(!),
這種寫法的原理是,在 JavaScript 中,感嘆號(!)是布爾取反運算子,可以將布林值取反,例如:
console.log(!true); // 輸出 false console.log(!false); // 輸出 true
因此,使用感嘆號(!)來定義自執行函式,相當于將函式定義轉換為布林值,然后對其取反,最后執行取反后的函式,
唯一在線客服系統
https://gofly.v1kf.com
十年開發經驗程式員,離職全心創業中,歷時三年開發出的產品《唯一客服系統》
一款基于Golang+Vue開發的在線客服系統,軟體著作權編號:2021SR1462600,一套可私有化部署的網站在線客服系統,編譯后的二進制檔案可直接使用無需搭開發環境,下載zip解壓即可,僅依賴MySQL資料庫,是一個開箱即用的全渠道在線客服系統,致力于幫助廣大開發者/公司快速部署整合私有化客服功能, 開源地址:唯一客服(開源學習版) 官網地址:唯一客服官網轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/541222.html
標籤:其他
