javascript call()函式用法簡單介紹

螞蟻小編發表於2017-03-16

call()函式在程式碼中的使用非常的頻繁,可能初學者對它不夠了解,下面就簡單介紹一下它的作用,希望對初學者帶來一定的幫助。

此函式可以改變指定函式的執行上下文環境,也就是改變函式的呼叫物件。

建議實現參閱javascript this用法一章節。 

語法結構:

[JavaScript] 純文字檢視 複製程式碼
funcObj.call([thisObj[,arg1[, arg2[, [,.argN]]]]])

引數說明:

funcObj:將要被改變上下文執行環境的函式。

thisObj:funcObj函式的上下文執行環境將會被指定為thisObj。

arg:傳遞給函式的引數。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
var webName="螞蟻部落"; 
function funcA(){
  console.log(this.webName);
}
funcA()

以上程式碼可以輸出"螞蟻部落",這說明this是指向window物件的。下面再來看一段程式碼例項:

[JavaScript] 純文字檢視 複製程式碼
var webName="螞蟻部落一"; 
function funcA(){
  console.log(this.webName);
}
function funcB(){
  this.webName="螞蟻部落";
  this.age=2;
}
var obj=new funcB();
funcA.call(obj);

以上程式碼的輸出結果是"螞蟻部落",這是因為通過call()函式將函式funcA的呼叫物件指定為物件obj。

由上面的程式碼可以看出,call()函式可以改變函式的的呼叫物件。

以上程式碼都是省略了第二個引數,不過這裡就不介紹了,具體可以參閱call()和apply()的作用和區別一章節。

相關文章