1. 程式人生 > 其它 >js如何改變this指向

js如何改變this指向

技術標籤:js前端

普通方法中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的指向方法:

  1. apply
  2. bind
  3. 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呼叫');

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述