js如何改變this指向
阿新 • • 發佈:2020-12-25
普通方法中this指向window物件。
eg:
var a = 1;
function human(b){
console.log(this);
console.log('a的值為'+ this.a);
console.log('b的值為'+b);
}
human();//執行human函式
改變human中this的指向方法:
- apply
- bind
- call
共同點:都是改變this的指向。 區別: bind和call呼叫的引數都一樣。第一個引數為 this物件。剩餘的引數以...形式傳遞。 apply 呼叫引數。第一個引數為this物件,第二個引數為傳遞的資料值。 bind呼叫後,返回的是函式物件。而aplly和call是直接知行。
eg:
//定義類
function man(){
this.a = 'man'
}
//apply human方法呼叫apply改變this指向
human.apply(new man(),['apply呼叫']);
//bind human方法呼叫bind改變this指向,返回方法。
var bindfunc = human.bind(new man(),'bind呼叫');
bindfunc();
//call human方法呼叫call改變this指向
human.call(new man(),'call呼叫');