看板 Ajax 關於我們 聯絡資訊
另外, 常看到有人這樣寫↓ (function(){ function a() {...} }).call(this); 對直譯器來說call也是函式呼叫, 直譯器也會立馬執行(function(){...})的內容. 裡面也是一個函式定義, 但這樣寫的好處是? 跟直接把function a(){...}拉到外面的差別是? ※ 引述《a2975313 (GN)》之銘言: : 最近在研究關於函式定義有哪些寫法, 所以有機會接觸到ecma文件, 但有些地方看不懂. : 裡面14.1 Function Definitions有用到[?Yield]或[+Default]或opt : 請問它這樣寫是代表什麼意思? : http://imgur.com/kGEkmO1 : ecma-262文件載點 : https://www.ecma-international.org/publications/standards/Ecma-262.htm -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.254.7.103 ※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1490950951.A.DC9.html
Qiqi: 差別在window.a 03/31 17:31
icydream: 自己的scope 03/31 18:47
Neisseria: 這把很常見啊 global namespace 會比較乾淨 03/31 18:50
Neisseria: 一些 transpiler 也會用這招包 code 03/31 18:50
eight0: 關鍵字是 IIFE 04/01 13:56
CCben: IIFE, 用意是不污染全域命名空間 04/03 18:39
visa9527: 這種寫法造成每次在 console debug 都沒有辦法執行 a 04/05 13:45
visa9527: 是它的缺點.... 04/05 13:45
ssccg: 這不叫缺點吧,可以選擇要放哪些東西到window裡面 04/06 14:22