javascript - es6擴展運算符...的問題
問題描述
擴展符復制數組我能理解,但用于函數傳遞參數的不懂
如上,為什么函數參數加上擴展運算符以后,就能接受若干個參數?
fn(...arg)要怎么理解
問題解答
回答1:函數定義的時候, 這應該叫剩余參數.
如果函數的最后一個命名參數以...為前綴,則在函數被調用時,該形參會成為一個數組,數組中的元素都是傳遞給該函數的多出來的實參的值。
看 MDN 詳細解釋:https://developer.mozilla.org...
回答2:你可以先看一下這個栗子
這里的...arg其實是獲取arguments的值,所以你方法可以改寫成這樣
function fn(){ var arg = [...arguments]; console.log(...arg);}回答3:
把arguments轉換成數組
回答4:官方解釋:
Bind trailing parameters to an array.
用在函數參數中,就是將此處開始的參數轉換成一個數組。
fn(...args)//所有參數變為數組fn(a, ...args)//從第二個參數變為數組回答5:
函數的形參本來就會保存到argument這個類數組里邊,...操作符可以把類數組轉成數組
回答6:你需要ECMAScript 6 入門
回答7:你可以理解為,fn(...arg) 是將參數的參數,全部放置在arg這個數組里.不管你調這函數時,傳多少個參數,都可以由arg來獲取.
函數參數可以通過arguments這個類數組對象獲得,你傳入的任意多參數本質上在函數內部就是以類數組對象存在的,所以加上擴展運算符,只是把這個類數組變成了參數序列
相關文章:
1. pip安裝提示Twisted錯誤問題(Python3.6.4安裝Twisted錯誤)2. javascript - vue-echarts-v3使用的過程中折線圖區域呈漸變色。3. 關于Mysql聯合查詢4. centos7 編譯安裝 Python 3.5.1 失敗5. mysql - 這個數據庫合計用 視圖做,和直接算好存在數據庫里,到時候調用起來哪個快?6. python - beautifulsoup獲取網頁內容的問題7. python - 能通過CAN控制一部普通的家用轎車嗎?8. 人工智能 - python 機器學習 醫療數據 怎么學9. mysql - 分庫分表、分區、讀寫分離 這些都是用在什么場景下 ,會帶來哪些效率或者其他方面的好處10. c++ - 請問MySQL_Connection::isReadOnly 怎么解決?
