2016-10-04 35 views
-3

我們可以在使用ES6的函數參數中有兩個或多個rest參數嗎?任何人都請解釋一下嗎?ES6中有多餘的參數可以作爲函數參數嗎?

function f(a, b, ...args1, c, ...arg2) { 
    //do somthing 
} 

這是可能與es6?

+1

沒有,真的沒有。想想看,很容易取第一個參數並將其分配給'a',第二個參數並將其分配給'b',但您分配給'args1'的數量是多少?請注意,_any_金額是有效的。 – vlaz

+0

好吧。你能幫我指出args1的參數長度嗎? – user2063756

+0

否;它是「休息」,如「休息」 – dandavis

回答

2

rest parameters on MDN

如果一個函數的最後命名參數的前綴...,它成爲一個數組,其元素從0(包括)到theArgs.length(不包括)由傳遞給函數的實際參數提供。

(重點煤礦)

如果這是 「最後的」,這顯然可以只有一個。

+0

你是說最後的補償可以休息(...)。或者我們可以讓中間的人休息(...)? – user2063756

+0

@ user2063756只有最後一個可以休息。 –

2

不,因爲結果不明確。

例如,如果你叫

f(1,2,3,4,5); 

則會有不同的合理的可能性:

a = 1; 
b = 2; 
args1 = []; 
c = 3; 
args2 = [4,5]; 
a = 1; 
b = 2; 
args1 = [3]; 
c = 4; 
args2 = [5]; 
a = 1; 
b = 2; 
args1 = [3,4]; 
c = 5; 
args2 = []; 
a = 1; 
b = 2; 
args1 = [3,4,5]; 
c = undefined; 
args2 = []; 
相關問題