call() 方法

C羽言發表於2024-03-31

在JavaScript中,call() 方法用於呼叫一個函式,並將一個指定的 this 值和一個或多個引數傳遞給該函式。其語法如下:

function.call(thisArg, arg1, arg2, ...)
  • function:要呼叫的函式。
  • thisArg:在 function 函式執行時,指定的 this 值。如果不需要設定 this 值,可以傳入 nullundefined
  • arg1, arg2, ...:要傳遞給 function 函式的引數。

call() 方法允許你在呼叫函式時指定函式體內 this 物件的值,從而可以用一個物件替換另一個物件。

例如:

const person = {
  fullName: function() {
    return this.firstName + " " + this.lastName;
  }
}

const person1 = {
  firstName: "John",
  lastName: "Doe"
}

const person2 = {
  firstName: "Mary",
  lastName: "Smith"
}

// 使用 call() 方法呼叫 fullName 函式,指定 this 為 person1
console.log(person.fullName.call(person1)); // 輸出: John Doe

// 使用 call() 方法呼叫 fullName 函式,指定 this 為 person2
console.log(person.fullName.call(person2)); // 輸出: Mary Smith

在上面的例子中,call() 方法允許我們在 fullName 函式內部使用 this 關鍵字來引用不同的物件,而不改變 fullName 函式本身的定義。

相關文章