如何在JavaScript函式中接受無限參數
如何實現一個接受無限參數的函式呢?
假設我們有一個名為 join()
的函式,它的任務是將我們傳遞給它的所有字符串串接起來。
例如,我們撰寫一個接受兩個字符串的原型:
1 | const join = (string1, string2) => { |
當我們調用它時,我們得到一個由我們傳遞的兩個參數串接而成的字符串:
1 | join('hi', ' flavio') // 'hi flavio' |
一個簡單的方法是添加其他默認值為空字符串的參數,像這樣:
1 | const join = (string1, string2, string3 = '') => { |
但這種方法並不適用於大量參數,並且會讓我們的代碼看起來很糟糕。
相反,我們可以使用展開運算符 (...
) 後跟我們想要使用的參數名稱的語法。在函式內部,該參數是一個陣列,所以我們可以簡單地調用它的 .join()
方法來串接它包含的字符串,並傳遞一個空字符串作為參數(否則默認會在字符串之間加上逗號):
1 | const join = (...strings) => { |
在我們的例子中,我們還可以使用箭頭函式中提供的隱式返回語法進一步簡化:
1 | const join = (...strings) => strings.join('') |
我們可以像之前一樣調用它:
1 | join('hi', ' flavio') // 'hi flavio' |
tags: [“JavaScript”, “function”, “spread operator”, “parameters”]