3 回答

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超13個(gè)贊
閉包問(wèn)題
執(zhí)行了var b = a(0);
,index沒(méi)有傳進(jìn)去,所以是underfined,同時(shí)會(huì)將val賦值為0,這個(gè)val不會(huì)被回收,因?yàn)榉祷氐膶?duì)象中引用了這個(gè)參數(shù)
b = { fn: function (name) { return a(name, val); } }
執(zhí)行b.fn(1);
就是執(zhí)行a(1,0),這里index賦值為0,所以會(huì)打印0,
下面同理

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊
第一個(gè)underfined,因?yàn)閕ndex只聲明但是未賦值。
后面b繼承了a的fn方法。此時(shí)、index的值被fn函數(shù)賦值為val.也就是0。
所以后面三個(gè)都是打印0.

TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個(gè)贊
var b = a(0)為underfined是因?yàn)橹唤oval賦值了,并沒(méi)有給index賦值,所以console.log(index)未定義,剩下的三個(gè)是因?yàn)閚ame為1、2、3,但是index卻賦值為0,所以與name為多少無(wú)關(guān),都會(huì)打印出0
添加回答
舉報(bào)