2017-07-30 1 views
0

関数にオブジェクトまたは位置引数を渡します。それはとても似関数のパラメータをdestructureできるようになりました

add({a: 5, b: 9}); 

またことを組み合わせることが可能である。このように呼び出すことができます

function add({a, b}) { return a + b; } 

それは引数の名前を付けずに呼び出すこともできます。例:

add(5, 9); 
+0

あなたと、またはオリDroriの回答解決の質問をしていますか?関数が単一のオブジェクトパラメータまたは複数のパラメータのいずれかを期待するパターンの目的は何ですか? – guest271314

答えて

3

rest parameterを使用して、それを長さに従って分解することができます。

function add(...args) { 
 
    let a, b; 
 
    
 
    args.length === 1 ? ({ a, b } = args[0]) : [a, b] = args; 
 
    
 
    return a + b; 
 
}; 
 

 
console.log(add({a: 5, b: 9})); 
 
console.log(add(5, 9));

+0

これは複数の引数を取る関数に対してのみ機能しますか? – kamoroso94

+0

argsの長さに応じて非構造化メソッドを変更することで、ニーズに合わせて調整できます。しかし、削除された答えの中で@estusが述べているように - 「複数の関数シグネチャは誤解を招き、正当な理由がないために引数をあまりにも多く交渉する必要があります。 –

関連する問題