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