Re: [問題] ECMA-262文件看不懂的地方

作者: a2975313 (GN)   2017-03-31 17:02:28
另外, 常看到有人這樣寫↓
(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
作者: Qiqi (潑潑)   2017-03-31 17:31:00
差別在window.a
作者: icydream (巧虎)   2017-03-31 18:47:00
自己的scope
作者: Neisseria (Neisseria)   2017-03-31 18:50:00
這把很常見啊 global namespace 會比較乾淨一些 transpiler 也會用這招包 code
作者: eight0 (欸XD)   2017-04-01 13:56:00
關鍵字是 IIFE
作者: CCben (new man)   2017-04-03 18:39:00
IIFE, 用意是不污染全域命名空間
作者: visa9527 (高級伴讀士官長)   2017-04-05 13:45:00
這種寫法造成每次在 console debug 都沒有辦法執行 a是它的缺點....
作者: ssccg (23)   2017-04-06 14:22:00
這不叫缺點吧,可以選擇要放哪些東西到window裡面

Links booklink

Contact Us: admin [ a t ] ucptt.com