在JavaScript 函數呼叫中模擬命名參數
在C# 等程式語言中,命名參數允許透過指定參數名稱來進行清晰簡潔的函數呼叫以及他們的價值觀。然而,JavaScript 本身並未提供此功能。不過,有一些方法可以達到類似的效果。
ES2015 及更高版本:參數解構
隨著 ES2015 的引入,參數解構提供了一種內建機制模擬命名參數。使用此功能,函數可以接受物件作為參數並提取特定屬性作為命名參數:
function myFunction({ param1, param2 } = {}) { // ...function body... }
然後呼叫者可以傳遞具有所需參數值的物件:
myFunction({ param1: 70, param2: 175 });
ES5:Function.prototype.toString 與物件關聯
在ES5 中,一個hackish方法涉及使用 Function.prototype.toString() 解析函數簽章並識別參數名稱。這允許我們將對象的屬性與相應的參數關聯起來:
var func = parameterfy(function(a, b, c) { console.log('a is ' + a, ' | b is ' + b, ' | c is ' + c); }); func(1, 2, 3); // a is 1 | b is 2 | c is 3 func(1, {b:2, c:3}); // a is 1 | b is 2 | c is 3
但是,這種方法有缺點:
其他注意事項
作為建立函數包裝器的替代方法,您還可以擁有接受函數和附加參數的函數,或擴充Function。支援使用命名參數執行函數的原型。
以上是如何在 JavaScript 函數呼叫中模擬命名參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!