此篇文章瀏覽量:
531
在 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