2016-05-17 27 views
-1

Spread operator可用於獲取可變參數的參數,例如,如何使用spread運算符來獲取具有命名參數的函數的所有參數?

(...args) => { 
    console.log(args); 
}; 

args('a', 'b', 'c'); 

// a 
// b 
// c 

但是,有沒有辦法讓在那裏的一些參數已經命名的所有參數?例如

(foo, bar, baz, ...args) => { 
    console.log(args); 
}; 

有,我能想到的除了接觸使用命名參數和可變參數的參數列表,如沒有其他辦法

(foo, bar, baz, ...args) => { 
    console.log([ 
     foo, 
     bar, 
     baz, 
     ...args 
    ]); 
}; 

回答

1

你可以用這個做destructuring assignment另一種方式:

let f = (...args) => { 
    let [foo, bar, baz] = args; 
    console.log(foo, bar, baz, args); 
} 

f(1, 2, 3, 4, 5); 
// result: 1, 2, 3, [1, 2, 3, 4, 5] 
相關問題