在JavaScript中,call()
方法用於呼叫一個函式,並將一個指定的 this
值和一個或多個引數傳遞給該函式。其語法如下:
function.call(thisArg, arg1, arg2, ...)
function
:要呼叫的函式。thisArg
:在function
函式執行時,指定的this
值。如果不需要設定this
值,可以傳入null
或undefined
。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
函式本身的定義。