引入模塊:
1. 假設(shè)有02.module.js這個(gè)模塊:

2. 在03.moudle.js引入02.moudle.js這個(gè)模塊并執(zhí)行:(文件后面的.js可以省略)


執(zhí)行03.moudle.js執(zhí)行成功:

如果03.moudle.js需要使用02.moudle.js里的變量,不能直接使用,但可以:

在03.moudle.js里打印02.moudle.js里的變量x:

???奇怪

???奇怪
原因是:

每個(gè)模塊對(duì)于另一個(gè)模塊來(lái)說(shuō)都是封閉的,那需要暴露如像x和y這種要怎么辦?

執(zhí)行03.moudle.js執(zhí)行成功:


執(zhí)行03.moudle.js執(zhí)行成功:

math模塊:

在helloWorld種執(zhí)行math模塊:

執(zhí)行成功:

模塊標(biāo)識(shí):
![]()


全局變量:
不通過(guò)模塊引入來(lái)判斷是否在模塊中是全局變量:

說(shuō)明a不是全局變量!

需要證明a變量是在函數(shù)里運(yùn)行的,不是在函數(shù)外運(yùn)行的

arguagements:偽數(shù)組對(duì)象(類(lèi)數(shù)組),封裝函數(shù)實(shí)參【全局里沒(méi)有實(shí)參】
如果運(yùn)行04.moudle.js發(fā)現(xiàn)里面有arguments就說(shuō)明a運(yùn)行在函數(shù)里
運(yùn)行04.moudle.js發(fā)現(xiàn)里面有arguments:

說(shuō)明a運(yùn)行在函數(shù)里
想要看到運(yùn)行a的函數(shù):

直接調(diào)用會(huì)把當(dāng)前函數(shù)的對(duì)象打印出來(lái):

但是加上拼串,前面會(huì)調(diào)用tostring(),把函數(shù)結(jié)構(gòu)打印出來(lái):



那么exports和require這些方法的使用由來(lái)就有根可循了:
為什么在A模塊下可以使用require和exports這些方法,因?yàn)檫@些本身就是B模塊下函數(shù)的參數(shù),將B模塊引入A模塊下,當(dāng)然可以使用B的參數(shù)了

因?yàn)閙odle是當(dāng)前模塊本身,當(dāng)前function()函數(shù)本身,所以可以使用exports屬性


浙公網(wǎng)安備 33010602011771號(hào)