javascript高級程序設(shè)計
1:函數(shù)表達(dá)式是定義函數(shù)的一種方式粥诫,在js中可以用聲明的方式定義函數(shù)咒吐,也可以采用變量定義的方式定義函數(shù)但荤。聲明的方式有聲明提前作用早芭,因此可以不用擔(dān)心未定義問題穴豫,而函數(shù)表達(dá)式則必須要先定義再使用(P175)
2:閉包的概念,要理解閉包必須要知道作用域鏈以及活動對象的概念(P179)
可以理解為外部函數(shù)的活動變量也在內(nèi)部函數(shù)的作用域鏈范圍內(nèi)逼友,所以內(nèi)部函數(shù)對象可以訪問外部函數(shù)的變量精肃,即便內(nèi)部函數(shù)已經(jīng)被返回。
3:那么閉包有什么好處呢帜乞?首先:可以利用閉包與匿名函數(shù)來實現(xiàn)一個塊級作用域(P184)司抱,從而減少全局作用域的變量沖突。
還可以利用閉包實現(xiàn)私有變量(P186)
以及利用閉包來實現(xiàn)對單例的增強(qiáng)(模塊模式) (p189)