亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JavaScript匿名函數的寫法

2019-11-17 03:51:36
字體:
來源:轉載
供稿:網友
可以想像得到,有很多方法立即執行匿名函數,簡單的整理就有下面三種的典型方式(還有其他方式的,歡迎告知):



方式一
(function() {
    // …
})();

方式二
void function() {
  // …
}();



方式三
~function() {
   // …
}();

方式一 和 方式二 大家可能都看到過,這里主要說明下 方式三。在說明 方式三 之前,我們現回顧下運算符“~”(位取反)在 EMCAScript 中的定義(第五版的第 72 頁),簡單的翻譯下:


按運算符結合語句
將舊值轉換為 32 位整型
執行運算符后的語句
轉換之行結果為 32 位整形并返回



從上面可以了解,其實位運算符都能立即返回后面表達式的值。其實其他位運算符都可以達到這樣的目的,例如:
!function() {
    // …
}();


等都可以達到我們的目的。所以其實用“~”也并無其他的原因,僅僅是代碼“看著好看”而已 :^)


效率
與其說三種方式執行匿名函數的效率,到不如直接分析個運算符的執行效率。那么我們對比再來看看“()”以及“void”在 EMCA 規范中的定義

組運算符(第五版 66 頁)

返回表達式的執行結果
void(第五版 70 頁)

按運算符結合語句
執行
返回 undefined
由于組運算符還需要執行語句并返回語句塊返回的值,對比 void 會多個獲取語句塊的操作(雖然消耗不了多少的性能),因此在這種情況下 void 的性能要優于組運算符。

對比兩者,那么 方式三 的性能對比很明顯要低于前兩者??偨Y起來就是光從語法的角度上分析,在上面三者匿名函數的方式中 方式二 優于 方式一,方式三 的效率最低。



總結
思考下三者之間的優異

方式一的寫法很常見而且很保險,所以并不會有人因為你使用這種方式而責怪你
但使用方式一的同學,可能經常會犯忘記匹配括號的“毛病”(特別是語句塊很長時,就經常搞錯)
使用位運算符執行匿名函數很新潮,用來裝逼酷不錯
很多 IDE (如 IDEA)以及語法高亮工具不支持 方式三 的寫法
void 效率最好,但總感覺相比其他兩種實現方式非常的臃腫(僅僅多幾個字符?)
那么

綜合代碼量以及效率等情況考慮,用 方式一 沒錯的
在需要額外節省代碼的極端情況,用 方式三
考慮效率優先,那么使用 方式二
這里要說明下,其實三種方式效率之間的差異非常小。因此單純拿效率來考慮采用那種方式,幾乎是站不住腳的。

具體采用何種方案,需要根據實際情況來考慮。比如我自己,經常會使用方式三,是因為 1、方便(加一個字符即可) 2、在函數長的情況下匹配括號會很頭暈 3、用起來很酷,但 方式三 會經常讓看我代碼的組員感到困擾。

如果在些類庫等框架性質的基礎代碼,用 方式一 最保險同時大家都容易看懂,是最保險的選擇。



[原文:http://www.gracecode.com/archives/3004/  非常好,大家學習一下。] 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91精品国产91久久久久久不卡| 亚洲欧美制服另类日韩| 北条麻妃久久精品| 欧美电影在线观看高清| www国产精品视频| 一区二区国产精品视频| 高清亚洲成在人网站天堂| 国产精品99久久99久久久二8| 久久精品国产v日韩v亚洲| 亚洲一区二区三区久久| 欧美天天综合色影久久精品| 国产欧美 在线欧美| 亚洲日韩欧美视频一区| 欧美激情视频在线免费观看 欧美视频免费一| 成人激情黄色网| 亚洲午夜久久久久久久| 日韩电影免费观看在线观看| 一本色道久久综合亚洲精品小说| 国产美女精品视频免费观看| 北条麻妃久久精品| 狠狠躁夜夜躁人人爽超碰91| 日韩欧美精品在线观看| 6080yy精品一区二区三区| 日韩久久免费电影| 精品国产一区av| 97国产在线观看| 国产精品美女免费视频| 欧美激情精品久久久久久久变态| 精品国模在线视频| 日韩激情av在线播放| 亚洲wwwav| 久久国产精品亚洲| 日本欧美一级片| 国产在线视频2019最新视频| 成人羞羞国产免费| 成人免费激情视频| 日韩在线观看免费高清| 国产aⅴ夜夜欢一区二区三区| 成人福利网站在线观看11| 欧美日韩亚洲天堂| 欧美电影在线观看| 日韩成人中文电影| 久久久亚洲影院你懂的| 亚洲综合一区二区不卡| 亚洲美女自拍视频| 成人性生交大片免费看小说| 欧美激情亚洲综合一区| 北条麻妃久久精品| 国产成人小视频在线观看| 欧美激情一区二区久久久| 久久男人资源视频| 成人免费观看49www在线观看| 久久精品人人爽| 国产精品精品久久久| 欧美午夜性色大片在线观看| 国产精品自产拍在线观看| 久久精品中文字幕电影| 亚洲精品wwww| 热久久99这里有精品| 日韩精品久久久久久福利| 欧美激情一级欧美精品| 成人观看高清在线观看免费| 国产精品成久久久久三级| zzijzzij亚洲日本成熟少妇| 欧美日韩国产成人高清视频| 丝袜亚洲另类欧美重口| 国产一区二区三区丝袜| 亚洲精品www| 欧美理论电影在线观看| 欧美成人性生活| 久久久久久久网站| 欧美大片网站在线观看| 日韩av片电影专区| 91极品视频在线| 亚洲精品网址在线观看| 中文字幕日韩精品有码视频| 国产精品久久电影观看| 亚洲午夜色婷婷在线| 国产午夜精品视频免费不卡69堂| 欧美精品九九久久| 国产国语videosex另类| 日韩网站在线观看| 欧美电影电视剧在线观看| 久久久日本电影| 久久精品国产v日韩v亚洲| 国产精品久久久久77777| 日韩精品中文字幕在线播放| 欧美精品videos性欧美| 色诱女教师一区二区三区| 国产成人一区二区在线| 欧美日韩免费在线观看| 欧美国产精品va在线观看| 亚洲国产古装精品网站| 美女av一区二区| 午夜精品久久久久久久99热浪潮| 国产欧美一区二区三区久久| 久久国产精品免费视频| 精品国产区一区二区三区在线观看| 97国产一区二区精品久久呦| 国产精品自拍网| 欧美午夜片在线免费观看| 久久久久久国产三级电影| 日韩av在线免费观看一区| 97精品在线观看| 国产综合色香蕉精品| 日韩中文理论片| 久久精品国产99国产精品澳门| 国产精品男女猛烈高潮激情| 久久精品国产久精国产思思| 日韩美女主播视频| 最近2019中文字幕一页二页| 国产精品亚洲第一区| 国产伦精品免费视频| 亚洲精品国偷自产在线99热| 国产成人自拍视频在线观看| 亚洲国产精品久久| 疯狂做受xxxx高潮欧美日本| 日韩av网站电影| 欧美成人一二三| 亚洲xxxx做受欧美| 成人激情免费在线| 久久久久久久久久久91| 91tv亚洲精品香蕉国产一区7ujn| 日韩精品高清在线观看| 精品国内产的精品视频在线观看| 欧美日韩免费在线| 久久精品久久久久久| 日韩电视剧在线观看免费网站| 亚洲无限乱码一二三四麻| 欧美伦理91i| 亚洲影院色在线观看免费| 日韩欧美国产一区二区| 久久久噜噜噜久久久| 在线播放日韩专区| 亚洲电影免费观看高清完整版在线| 在线视频国产日韩| 日韩精品在线观看一区| 欧美福利小视频| 国产精品劲爆视频| 色综合久久88色综合天天看泰| 欧美激情视频免费观看| 国产成人91久久精品| 欧美激情精品久久久久久免费印度| 九九综合九九综合| 久久久成人精品| 性色av一区二区三区红粉影视| 庆余年2免费日韩剧观看大牛| 精品亚洲一区二区三区在线播放| 日韩69视频在线观看| 国产热re99久久6国产精品| 欧美精品18videos性欧美| 久久精品一区中文字幕| 日韩av在线导航| 欧美最猛黑人xxxx黑人猛叫黄| 日本伊人精品一区二区三区介绍| 国产欧美一区二区三区久久人妖| 亚洲美女在线视频| 精品国产一区二区三区四区在线观看| 国产亚洲欧洲高清| 欧美激情视频在线观看| 久久精品中文字幕免费mv| 国产精品一区二区av影院萌芽| 久久综合久中文字幕青草| 久久久电影免费观看完整版|