摘要:一般沒有問題,但是,建議在自己寫的立即執行函數前加分號,這樣可以有效地與前面代碼進行隔離。否則,可能出現意想不到的錯誤。自執行函數前加個分號是什么意思寫法最前最后加括號推薦這種寫法外面加括號目前很多比較好的使用的都是第二種方式。
定義
立即執行函數模式是一種語法,可以讓你的函數在定義后立即被執行,
這種模式本質上就是函數表達式(命名的或者匿名的),在創建后立即執行;
立即執行函數(immediate function)術語不是在ECMAScript標準中定義的,但它很短有助于描述和討論模式;
這種模式有一些幾部分組成:
使用函數表達式定義一個函數(函數聲明不能起作用)
在結尾加上一對括號,讓函數立即被執行
將整個函數包裹在一對括號中(只有在你不將函數賦值給一個變量的時候才需要)
功能它可以幫你封裝大量的工作而不會在背后遺留任何全局變量。
你定義的所有變量都會成員立即執行函數的局部變量,所以你不用擔心這些臨時變量會污染全局空間
可以使用這種技術可以模仿一個私有作用域,用匿名函數作為一個“容器”,“容器”內部可以訪問外部的變量,而外部環境不能訪問“容器”內部的變量
可以添加更多的加強模塊,移除它們,多帶帶測試它們,允許用戶去禁用它們等等
為什么要有js立即執行函數,存在的意義是什么
立即執行函數通常作為一個多帶帶模塊使用。一般沒有問題,但是,建議在自己寫的立即執行函數前加分號,這樣可以有效地與前面代碼進行隔離。否則,可能出現意想不到的錯誤。
js自執行函數前加個分號是什么意思?
最前最后加括號
(function(){alert(1);}());
JSLINT推薦這種寫法
function外面加括號
(function(){alert(1);})();
目前很多比較好的js library 使用的都是第二種方式。
比如: web 圖形繪制的: git , draw2d ,....
function前面加運算符,常見的是!與void
!function(){alert(1);}(); void function(){alert(2);}();
在function前面加!、+、 -甚至是逗號等到都可以起到函數定義后立即執行的效果,而()、!、+、-、=等運算符,都將函數聲明轉換成函數表達式,消除了javascript引擎識別函數表達式和函數聲明的歧義
js中立即執行函數
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/80305.html
摘要:前言大家學的時候,經常遇到自執行匿名函數的代碼,今天我們主要就來想想說一下自執行。其實,前面兩個例子里的變量,也可以換成,因為和外面的不在一個作用于,所以不會出現問題,這也是匿名函數閉包的威力。 前言 大家學JavaScript的時候,經常遇到自執行匿名函數的代碼,今天我們主要就來想想說一下自執行。 在詳細了解這個之前,我們來談了解一下自執行這個叫法,本文對這個功能的叫法也不一定完全對...
摘要:函數表達式又名匿名函數為變量賦的值是函數定義本身。在語言里任何匿名函數都是屬于對象。這種情況下,就叫做回調函數。如上面代碼示例展示了文檔單擊事件時以冒泡模式傳遞給回調函數的特別適用于事件驅動編程,因為回調模式支持程序以異步方式運行。 JavaScript設計模式的作用是提高代碼的重用性,可讀性,使代碼更容易的維護和擴展 在javascript中,函數是一類對象,這表示他可以作為參數傳遞...
摘要:和的定義是指多少時間之后將回調函數加入到的執行隊列之中回調函數是否立即執行取決于當前的執行隊列是否空閑。比較好的例子如下回調函數執行其他操作假如內部的執行時間為那么的回調函數至少要等待才執行。 1、惰性加載函數 (判斷各個瀏覽器中是否支持某個屬性) function addEvent(elem, type, handler){ if(elem.addEventListener...
摘要:注意匿名函數自執行只是產生閉包的一種情況,閉包是現象或者情形,不實用匿名函數自執行也有很多情況產生閉包,所以而且根本就是兩回事兒,不能混淆。小測驗,你能看出下面的程序用了閉包嗎閉包在中使用。閉包無處不在,直接看的例子。 通過文你將學到: 1.閉包是怎么回事兒? 2.閉包的原理和在jquery中的應用 3.從一到面試題徹底理解閉包和垃圾回收機制 4.閉包在jquery中的應用 概述 ...
閱讀 2388·2021-11-24 10:31
閱讀 3440·2021-11-23 09:51
閱讀 2254·2021-11-15 18:11
閱讀 2402·2021-09-02 15:15
閱讀 2464·2019-08-29 17:02
閱讀 2296·2019-08-29 15:04
閱讀 845·2019-08-29 12:27
閱讀 2869·2019-08-28 18:15