又是你。
把你包起來❤
跟 展開運算子 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]) { |