首先,()操作符有兩種用法,一是作為圓括號運算符,提升括號內(nèi)表達式的優(yōu)先級;二是作為函數(shù)調(diào)用操作符,用于執(zhí)行在()操作符之前指向的函數(shù)名其次,函數(shù)有函數(shù)聲明和函數(shù)表達式兩種聲明形式,前者形如:functionname([param,[,param,[...,param]]]){[statements]}而函數(shù)表達式則是:letfunction_expression=function[name]([param1[,param2[,...,paramN]]]){statements};在函數(shù)表達式中,前邊的function_expression如果存在,這就是個具名函數(shù)表達式;而反之則是匿名函數(shù)表達式。表達式里的name加的是方括號,表示可選:因為這個函數(shù)聲明是被“禁錮”在function_expression變量里的,換句話說,它可以用function_expression()這種形式來調(diào)用(所以有沒有名字其實無所謂了,因為函數(shù)名外部不可見)。再說匿名函數(shù)表達式。匿名函數(shù)表達式,形如:function([param,[,param,[...,param]]]){[statements]}說白了就是函數(shù)聲明不留名。做好事不留名可以,做函數(shù)不留名,...那怎么調(diào)動?所以這種形式單獨存在的話,不合法。所以要怎么辦?這時就出現(xiàn)了IIFE,也就是立即調(diào)用函數(shù)表達式/自執(zhí)行函數(shù)表達式。它的根本思想很簡單,先用圓括號操作符把表達式本體罩住,表示“我罩你”,再在末尾加個函數(shù)調(diào)用操作符,表示“放膽做”,這倆加一塊,就是“立即執(zhí)行”:(function([param,[,param,[...,param]]]){[statements]})()(當然還有幾種其它形式的,但先學標準的吧)這些balabala的都看下來,你的問題也應(yīng)該能有個解釋了。(另外結(jié)下稿費,謝謝......參考資料:MDN:圓括號運算符MDN:函數(shù)MDN:函數(shù)表達式MDN:IIFE