2 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊
我的理解是這個(gè)括號(hào)建立了一個(gè)新的作用域。(function(){return "ok"}())中的匿名函數(shù)已經(jīng)不再是定義全局作用域定義的函數(shù)了。你可以用(fOk = function(){return "ok"}());fOk();來驗(yàn)證。但是函數(shù)的定義加載是優(yōu)先于其調(diào)用的。但是在匿名函數(shù)中()運(yùn)算符優(yōu)先級(jí)更高,所以直接function(){//..}()會(huì)報(bào)錯(cuò)。但是用()將這段代碼的作用于降級(jí)之后就可以了,應(yīng)該因?yàn)檫@時(shí)函數(shù)調(diào)用運(yùn)算符()執(zhí)行前匿名函數(shù)就已經(jīng)定義過了

TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊
(function(){return "ok"}())
外面的括號(hào)只是強(qiáng)制運(yùn)算而已,并不涉及作用域。
可以使用其他的運(yùn)算符,強(qiáng)制運(yùn)算:void function(){return "ok"}()
+ function(){return "ok"}()
- function(){return "ok"}()
1* function(){return "ok"}()
1 & function(){return "ok"}()
添加回答
舉報(bào)