javascript - es6擴(kuò)展運(yùn)算符...的問題
問題描述
擴(kuò)展符復(fù)制數(shù)組我能理解,但用于函數(shù)傳遞參數(shù)的不懂
如上,為什么函數(shù)參數(shù)加上擴(kuò)展運(yùn)算符以后,就能接受若干個(gè)參數(shù)?
fn(...arg)要怎么理解
問題解答
回答1:函數(shù)定義的時(shí)候, 這應(yīng)該叫剩余參數(shù).
如果函數(shù)的最后一個(gè)命名參數(shù)以...為前綴,則在函數(shù)被調(diào)用時(shí),該形參會(huì)成為一個(gè)數(shù)組,數(shù)組中的元素都是傳遞給該函數(shù)的多出來的實(shí)參的值。
看 MDN 詳細(xì)解釋:https://developer.mozilla.org...
回答2:你可以先看一下這個(gè)栗子
這里的...arg其實(shí)是獲取arguments的值,所以你方法可以改寫成這樣
function fn(){ var arg = [...arguments]; console.log(...arg);}回答3:
把a(bǔ)rguments轉(zhuǎn)換成數(shù)組
回答4:官方解釋:
Bind trailing parameters to an array.
用在函數(shù)參數(shù)中,就是將此處開始的參數(shù)轉(zhuǎn)換成一個(gè)數(shù)組。
fn(...args)//所有參數(shù)變?yōu)閿?shù)組fn(a, ...args)//從第二個(gè)參數(shù)變?yōu)閿?shù)組回答5:
函數(shù)的形參本來就會(huì)保存到argument這個(gè)類數(shù)組里邊,...操作符可以把類數(shù)組轉(zhuǎn)成數(shù)組
回答6:你需要ECMAScript 6 入門
回答7:你可以理解為,fn(...arg) 是將參數(shù)的參數(shù),全部放置在arg這個(gè)數(shù)組里.不管你調(diào)這函數(shù)時(shí),傳多少個(gè)參數(shù),都可以由arg來獲取.
函數(shù)參數(shù)可以通過arguments這個(gè)類數(shù)組對象獲得,你傳入的任意多參數(shù)本質(zhì)上在函數(shù)內(nèi)部就是以類數(shù)組對象存在的,所以加上擴(kuò)展運(yùn)算符,只是把這個(gè)類數(shù)組變成了參數(shù)序列
相關(guān)文章:
1. 如何解決docker宿主機(jī)無法訪問容器中的服務(wù)?2. docker 下面創(chuàng)建的IMAGE 他們的 ID 一樣?這個(gè)是怎么回事????3. require后不用使用echo返回到微信服務(wù)器 嗎4. nginx - 如何將wordpress系統(tǒng)放在二級域名下5. javascript - 請問要如何修改 Node 的透明度嗎?6. javascript - 求助,nodeJS和koa2文檔對新手小白太不友好,一臉懵逼。。。7. css3 background顯示圖片的一部分8. vim中編輯HTML文件時(shí)換行不能縮進(jìn)9. 在應(yīng)用配置文件 app.php 中找不到’route_check_cache’配置項(xiàng)10. html按鍵開關(guān)如何提交我想需要的值到數(shù)據(jù)庫
