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

鍍金池/ 問答/HTML5  HTML/ 關(guān)于call()的一些疑問?

關(guān)于call()的一些疑問?

幫忙解釋一下輸出的結(jié)果為什么是333和aaa

function superClass () {

this.c =333;
this.d ='bbb';

}

function subClass () {

this.c =222;
superClass.call(this);
this.d ='aaa';

console.log(this.c);//333
console.log(this.d);//aaa

}

subClass();

回答
編輯回答
亮瞎她
  1. subClass();在全局環(huán)境下執(zhí)行,里面的this指向window;
  2. superClass.call(this)這里將window傳入函數(shù),里面的this也是指向window;
  3. 代碼執(zhí)行后相當(dāng)于
window.c =222;
window.c =333;
window.d ='bbb';
window.d ='aaa';

console.log(window.c);//333
console.log(window.d);//aaa
2018年9月16日 15:14
編輯回答
任她鬧

一。關(guān)于this簡單說法:不考慮es6箭頭函數(shù)和嚴(yán)格模式。this,誰調(diào)用就是指向誰。比如:

var a = 2;
var obj = {
    a:1,
    get:function(){
        console.log(this.a);
    }
};
obj.get();//1
var fun = obj.get;
fun();//2
//全局你可以直接理解this指向window。這里的fun掛在window上,即形式是x(),this指向windows
//如果形式是x.y(),this指向x。
//如果形式如x.y.z(),這時(shí)this指向y。

二。call/apply用法:call和apply類似,我用call舉例

x.call(y,z);//你直接理解成y.x(z),按照上面的說法,this指向y

結(jié)論,如上面兩條說法。瀏覽器全局下this,理解成window.superClass(),c和d都綁到window上面,結(jié)果就如題主結(jié)果。

2018年8月22日 21:51
編輯回答
拮據(jù)

瀏覽器環(huán)境下this都是window,你這代碼就相當(dāng)于一直在按執(zhí)行順序修改全局變量,和call沒什么關(guān)系。

2017年8月24日 23:57