[JavaScript] 內建的 apply() 函式

在 JavaScript 中,所有的函式都屬於物件方法(Object Methods),如果一個函式並不屬於 JavaScript 的物件中的話,那都會隸屬於全域物件中的方法(global object)。而內建的 apply() 函式,可將一個物件當作參數,代入 apply() 函式之後,供不同的函式使用。

call() 函式與 apply() 函式的差異僅在於代入參數的不同,apply() 後面的參數是使用陣列方式來代入,較為方便。call() 函式可參考 [JavaScript] 內建的 call() 函式

定義

讓一個自訂的函式,透過 apply() 函式,代入物件,自訂的函式,就可透過 this 關鍵字去取得代入物件的屬性。
什麼意思呢?直接看以下的範例

範例 1

function fullName(){
  return this.firstName + " " + this.lastName;
}
var person1 = {
  firstName:"John",
  lastName: "Doe",
};
var get_full_name = fullName.call(person1); // get_full_name 的值就會是 John Doe

範例 2

function fullName(country, city){
  return this.firstName + " " + this.lastName + " in " + country + " " + city;
}
var person1 = {
  firstName:"John",
  lastName: "Doe",
};
var get_full_name = fullName.call(person1, ["Taiwan", "Taipei"]); // get_full_name 的值就會是 John Doe in Taiwan Taipei

您可在此處留言

avatar

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料

  Subscribe  
Notify of