現(xiàn)在代碼塊還有最后一步foo()需要執(zhí)行
函數(shù)如何被執(zhí)行呢?
在執(zhí)行的過程中執(zhí)行到一個(gè)函數(shù)時(shí),就會(huì)根據(jù)函數(shù)體創(chuàng)建一個(gè)函數(shù)執(zhí)行上下文(Functional Execution Context,簡(jiǎn)稱FEC)帝蒿,然后壓入執(zhí)行上下文棧悯森,前面說到每個(gè)執(zhí)行上下文都必須關(guān)聯(lián)一個(gè)Vo宋舷,函數(shù)也不例外,當(dāng)進(jìn)入一個(gè)函數(shù)執(zhí)行上下文的時(shí)候瓢姻,會(huì)創(chuàng)建一個(gè)AO對(duì)象(Activation Object),這個(gè)AO對(duì)象會(huì)使用arguments作為初始化祝蝠,并且初始值是傳入的參數(shù);這個(gè)AO對(duì)象會(huì)作為執(zhí)行上下文的VO來存放變量的初始化幻碱;
執(zhí)行foo函數(shù)前時(shí)內(nèi)存中的表現(xiàn)
下面是執(zhí)行后
執(zhí)行后name被賦值為‘foo’并且打印
函數(shù)到此為止執(zhí)行完了绎狭,就會(huì)彈出棧銷毀
接下來全局代碼快也沒有要執(zhí)行的函數(shù)了同理
下篇文章繼續(xù)說函數(shù)的作用域和作用域鏈