亚洲香蕉成人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 的性能要優于組運算符。

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



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

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

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

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

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



[原文:http://www.gracecode.com/archives/3004/  非常好,大家學習一下。] 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情在线有限公司| 国产91成人video| 深夜福利日韩在线看| 亚洲精品资源在线| 深夜福利一区二区| 在线a欧美视频| 欧美激情一区二区三区在线视频观看| 亚洲一级一级97网| 亚洲国产美女精品久久久久∴| 久久国产精品影视| 欧美日韩美女视频| 久久久久久久爱| 国产亚洲精品一区二区| 清纯唯美日韩制服另类| 国产一区二区三区高清在线观看| 精品调教chinesegay| 国产美女精品视频免费观看| 18一19gay欧美视频网站| 91在线观看免费高清| 欧美区二区三区| 午夜美女久久久久爽久久| 精品视频在线播放色网色视频| 日韩av资源在线播放| 成人黄色免费网站在线观看| 欧美日韩中文字幕| 欧美香蕉大胸在线视频观看| 日韩在线视频线视频免费网站| 亚洲免费一在线| 最近免费中文字幕视频2019| 国产最新精品视频| 欧美性猛交丰臀xxxxx网站| 国产精品黄视频| 亚洲精品视频中文字幕| 一区二区三欧美| 日韩视频免费在线| 91在线观看免费| 欧美激情xxxx| 55夜色66夜色国产精品视频| 欧美精品www在线观看| 久久综合国产精品台湾中文娱乐网| 国产精品成人国产乱一区| 欧美国产日韩中文字幕在线| 91产国在线观看动作片喷水| 欧美日韩性生活视频| 亚洲成人动漫在线播放| 亚洲天堂男人的天堂| 亚洲精品av在线播放| 2019精品视频| 国产成人精品在线播放| 影音先锋欧美精品| 日韩在线观看网站| 在线国产精品视频| 久久电影一区二区| 色爱av美腿丝袜综合粉嫩av| 96精品久久久久中文字幕| 亚洲www在线观看| 精品一区二区电影| 日韩高清av在线| 国内精品视频久久| 久久国产精品久久久久久久久久| 亚洲精品国产精品国产自| 亚洲精品资源在线| 亚洲欧美一区二区激情| 久久全球大尺度高清视频| 狠狠久久亚洲欧美专区| 777777777亚洲妇女| 日韩视频第一页| 国产视频观看一区| 色综合91久久精品中文字幕| 国产va免费精品高清在线观看| 欧美成在线观看| 欧美成年人视频网站欧美| 成人性生交xxxxx网站| 亚洲精品福利免费在线观看| 亚洲色图五月天| 国产精国产精品| 国产噜噜噜噜久久久久久久久| 久久人91精品久久久久久不卡| 欧美人与性动交| 亚洲人成电影网站色| 亚洲色在线视频| 久久久极品av| 综合久久五月天| 国产精品免费看久久久香蕉| 96精品视频在线| 亚洲高清一区二| 国产精品va在线播放我和闺蜜| 在线精品视频视频中文字幕| 中文字幕欧美亚洲| 九九热最新视频//这里只有精品| 久久久天堂国产精品女人| 在线视频中文亚洲| 国产精品爽爽爽爽爽爽在线观看| 欧美大尺度电影在线观看| 欧美一级免费看| 这里只有精品视频| 成人精品网站在线观看| 国产精品一区二区三区免费视频| 中文字幕av一区中文字幕天堂| 国产精品入口福利| 国产精品欧美激情| 97超级碰碰人国产在线观看| 福利一区福利二区微拍刺激| 在线视频欧美日韩| 亚洲欧洲偷拍精品| 国产精品久久久久久久久男| 精品久久久久久国产91| 国产欧美日韩免费看aⅴ视频| 国产日韩在线视频| 久久久久久久久久av| 日韩精品在线观看一区二区| 中文字幕日韩欧美| 成人欧美在线视频| 日韩一区二区三区国产| 精品人伦一区二区三区蜜桃网站| 91产国在线观看动作片喷水| 成人福利网站在线观看| 亚洲视频电影图片偷拍一区| 国产日韩精品综合网站| 欧美丝袜一区二区| 欧美成人免费全部观看天天性色| 疯狂蹂躏欧美一区二区精品| 成人中心免费视频| 狠狠躁天天躁日日躁欧美| 欧美电影电视剧在线观看| 欧美网站在线观看| 日韩av在线免播放器| 91亚洲精品久久久久久久久久久久| 日韩精品小视频| 久久精品在线播放| 午夜精品美女自拍福到在线| 97精品欧美一区二区三区| 国产亚洲欧美另类中文| 日韩成人中文字幕在线观看| 亚洲人成电影网站色www| 国内精品久久久| 日韩在线视频网| 青青精品视频播放| 国产精品久久久久久久7电影| 成人免费福利视频| 欧美激情2020午夜免费观看| 97人人做人人爱| 国产精品自拍偷拍| 欧美日韩国产123| 91久久精品久久国产性色也91| 久久久av免费| 欧美日韩在线观看视频| 精品自拍视频在线观看| 亚洲国产日韩欧美在线图片| 欧美精品www在线观看| 国产一区二区三区日韩欧美| 亚洲成avwww人| 97在线看免费观看视频在线观看| 久久综合久久88| 伊人伊人伊人久久| 欧美日韩中文字幕综合视频| 色av吧综合网| 国产精品美女网站| 久久好看免费视频| 久久久精品一区二区三区| 精品露脸国产偷人在视频| 97在线视频免费观看| 欧美日韩国产精品| 欧美大片免费观看在线观看网站推荐|