在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 輸出為什么是2。

輸出為什么是2。

似乎與閉包有關,求講解。

function test() {
    var num = 1;
    var t2 = function() { console.log(num); }
    num++;
    return t2;
}
var t=test();
t();
回答
編輯回答
夏木

是的,閉包問題

t函數(shù)的功能是打印num,這個num的上下文是test函數(shù),注意,不是window,因為t所指向的函數(shù)是在test函數(shù)內(nèi)部創(chuàng)建的,test內(nèi)部的num初始值為1,后經(jīng)過一次運算變成2,所以之后運行t函數(shù)的時候,所打印的就是2

2018年3月26日 22:03
編輯回答
默念

閉包的意思就是雖然是在外面執(zhí)行,但執(zhí)行環(huán)境仍然是定義它的地方。所以外面的t()實際上相當于在return t2;這一句的位置上執(zhí)行的。結(jié)果是什么是不是一眼就看出來了。

2017年3月9日 22:37