使用bind()函式的產生的函式用作建構函式this的指向

admin發表於2017-03-29

關於bind()函式的用法這裡就不多介紹了,具體可以參閱javascript bind()一章節。

可以知道使用bind()函式返回的函式物件中的this的指向已經發生了改變,程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
function original(){
  return this.maxN;
}
var obj={
  minN:10,
  maxN:20
}
var newFunc=original.bind(obj);
console.log(newFunc());

由上面程式碼的執行結果可以看出函式中this是指向物件obj的。

如果返回的函式用作建構函式,那麼this會指向誰呢,看如下程式碼例項:

[JavaScript] 純文字檢視 複製程式碼
function original(){
  this.maxN=18;
  return this.maxN;
}
var obj={
  minN:10,
  maxN:20
}
var newFunc=original.bind(obj);
var instance=new newFunc();
console.log(instance.maxN);

相關文章