使用call 和apply 進行函數呼叫
呼叫函數時,程式設計師常會遇到使用Function.prototype.apply() 或Function 的選項.prototype.call()。本文探討了這兩種方法的差異和用例。
apply() 與 call()
根本區別在於它們如何處理函數參數:
語法
Method | Syntax |
---|---|
apply() | function.apply(thisArg, [arg1, arg2, ...]) |
call() | function.call(thisArg, arg1, arg2, ...) |
助記符
要記住區別:
C 表示逗號: call() 需要用逗號分隔參數。
apply():非常適合參數已經儲存在陣列中或需要動態的場景綁定。
效能注意事項兩種方法具有相似的效能特性。在 ES6 及更高版本中,擴充運算子 (...) 可以與 call() 一起使用,為 apply() 提供更簡潔的替代方案。
範例function greet(name, occupation) { console.log(`Hello, my name is ${name} and I'm a ${occupation}.`); }
greet.apply(undefined, ["John", "engineer"]); greet.call(undefined, "Mary", "doctor");
Hello, my name is John and I'm a engineer. Hello, my name is Mary and I'm a doctor.
以上是`call()` 與 `apply()`:何時使用哪一種函式呼叫方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!