作者a2975313 (GN)
看板Ajax
标题Re: [问题] ECMA-262文件看不懂的地方
时间Fri Mar 31 17:02:28 2017
另外, 常看到有人这样写↓
(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://webptt.com/cn.aspx?n=bbs/Ajax/M.1490950951.A.DC9.html
1F:推 Qiqi: 差别在window.a 03/31 17:31
2F:推 icydream: 自己的scope 03/31 18:47
3F:推 Neisseria: 这把很常见啊 global namespace 会比较乾净 03/31 18:50
4F:→ Neisseria: 一些 transpiler 也会用这招包 code 03/31 18:50
5F:→ eight0: 关键字是 IIFE 04/01 13:56
6F:推 CCben: IIFE, 用意是不污染全域命名空间 04/03 18:39
7F:推 visa9527: 这种写法造成每次在 console debug 都没有办法执行 a 04/05 13:45
8F:→ visa9527: 是它的缺点.... 04/05 13:45
9F:→ ssccg: 这不叫缺点吧,可以选择要放哪些东西到window里面 04/06 14:22