js的模塊化
1. 引入一個(gè)文件的方式
在一個(gè)文件中訪問(wèn)另一個(gè)文件中的全局變量术徊,可以通過(guò)script標(biāo)簽的src屬性將另一個(gè)文件引入。
這種方法存在的問(wèn)題是全局變量的污染挪蹭,所以為了避免這種問(wèn)題亭饵,我們采用其他的方式實(shí)現(xiàn)模塊化。
2. 引入對(duì)象的方式
采用引入對(duì)象后梁厉,訪問(wèn)變量則需采用對(duì)象.屬性的方式進(jìn)行訪問(wèn)辜羊,此時(shí)可以有效避免全局變量的污染問(wèn)題。
但是這個(gè)方式的缺點(diǎn)是將對(duì)象暴漏出來(lái)后词顾,我們可以查看到對(duì)象內(nèi)部的所有屬性八秃,以至于我們可以對(duì)其屬性進(jìn)行修改。所以肉盹,我們還需繼續(xù)完善昔驱。
3. 引入立即執(zhí)行函數(shù)
立即執(zhí)行函數(shù)可以使得局部變量被保護(hù)起來(lái),向外暴漏允許暴漏的內(nèi)容垮媒,防止對(duì)其他的內(nèi)部屬性進(jìn)行修改舍悯。
但如果想要在引入的模塊中加入新的屬性或者方法,則會(huì)存在一些問(wèn)題睡雇,所以此時(shí)我們又要思考新的方式萌衬。
4.? 放大模式
當(dāng)多個(gè)人共同開發(fā)一個(gè)項(xiàng)目的時(shí)候,此時(shí)每個(gè)人都有自己的模塊它抱,為了配合多人開發(fā)秕豫,有了放大模式。這種模式也可以使在一個(gè)模塊中給另一個(gè)模塊中增加新的方法或者屬性。
引入文件的順序如果不注意混移,會(huì)報(bào)錯(cuò):
5. 寬放大模式
可以解決放大模式中的依賴問(wèn)題祠墅。