又是你。
把你包起來❤
跟 展開運算子 87 分像,但差在展開運算子是把 array 或 object 給「拆開來」,其餘運算子是把「沒有殼的 array 或 object」給「包起來」,變成一個 array 或 object。
什麼叫沒有殼的 array 或 object?就是你在用「解構」或是「傳參數到 function」的時候。
舉個解構的例子:
1 | let arr = [1, 2, 3, 4] |
你可以把它想像成這樣
1 | let [..rest] = 1, 2, 3, 4 |
我知道這樣做看起來很脫褲子放屁,但只是方便理解。它的用法是「把剩餘的部分給包起來」:
1 | let arr = [1, 2, 3, 4] |
但要注意,rest
必須放在最後面,畢竟它是把「剩下」的東西給集合起來。
object 也是同樣的操作方式:
1 | let obj = { |
不懂的話,一樣想成「沒有殼的 object」就好:
1 |
|
搭配 function
傳到 function 裡的參數就很像「沒有殼的 array」:
1 | function add(a, ...rest) { |
搭配解構來用也行:
1 | function add([a, ...rest]) { |