1 回答

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊
始終記住一句話:this永遠(yuǎn)指向最后調(diào)用他的對(duì)象。
當(dāng)你執(zhí)行init時(shí),是window對(duì)象在執(zhí)行,最后調(diào)用了上面m方法,因?yàn)樵谶@個(gè)方法中,變量a是沒(méi)有聲明的,所以提升到全局層,因此你是可以在window對(duì)象下找到變量a的。如果要達(dá)到題主所說(shuō)的效果,在題主的基礎(chǔ)上可以這樣修改:
var m = function(b) {
a = 3;
console.log(a, b ,this)
};
var init = function () {
var a = 1;
var b = 10;
m.call(this , b);
}
init();
或者說(shuō)將init提升到一個(gè)對(duì)象里面去吧:
var m = function() {
a = 3;
console.log(this.a, this.b ,this)
};
var aa = {
a : 1,
b : 10,
init : function () {
this.a = 2;
this.b = 20;
m.call(this);
}
}
aa.init();
添加回答
舉報(bào)