Summary
This post is purely some code examples of different ways to structure arguments to functions. I show some examples of conditional object properties as well.
Base
function example1(p1,p2,p3) { console.log('example1'); const params = { "p1": p1, "p2": p2, "p3": p3 }; console.log(params); }; example1('a', 'b', 'c');
example1 { p1: 'a', p2: 'b', p3: 'c' }
Insufficient Number of Arguments
function example2(p1,p2,p3) { console.log('\nexample2') const params = { "p1": p1, "p2": p2, "p3": p3 }; console.log(params); }; example2('a', 'b');
example2 { p1: 'a', p2: 'b', p3: undefined }
Argument with a default value
function example3(p1,p2,p3='c') { console.log('\nexample3') const params = { "p1": p1, "p2": p2, "p3": p3 }; console.log(params); }; example3('a', 'b');
example3 { p1: 'a', p2: 'b', p3: 'c' }
Arguments passed as an object
function example4(allparms) { console.log('\nexample4') const params = { "p1": allparms.p1, "p2": allparms.p2, "p3": allparms.p3 }; console.log(params); } example4({"p1": 'a', "p2": 'b', "p3": 'c'});
example4 { p1: 'a', p2: 'b', p3: 'c' }
Argument object destructured
function example5({ p1,p2,p3 }) { console.log('\nexample5'); const params = { "p1": p1, "p2": p2, "p3": p3 }; console.log(params); }; example5({"p1": "a", "p2": "b", "p3": "c"});
example5 { p1: 'a', p2: 'b', p3: 'c' }
Destructured arguments, undefined argument
function example6({ p1,p2,p3 }) { console.log('\nexample6'); const params = { "p1": p1, "p2": p2, "p3": p3 }; console.log(params); }; example6({"p1": "a", "p2": "b"});
example6 { p1: 'a', p2: 'b', p3: undefined }
Destructured arguments, undefined arg, conditional object property
function example7({ p1,p2,p3 }) { console.log('\nexample7'); const params = { "p1": p1, "p2": p2, ...(p3 && {"p3": p3}) }; console.log(params); }; example7({"p1": "a", "p2": "b"});
example7 { p1: 'a', p2: 'b' }
Destructured arguments, default value
function example8({ p1,p2,p3='c' }) { console.log('\nexample8'); const params = { "p1": p1, "p2": p2, ...(p3 && {"p3": p3}) }; console.log(params) }; example8({"p1": "a", "p2": "b"});
example8 { p1: 'a', p2: 'b', p3: 'c' }
Variadic function, spread operator
function example9(...allParms) { console.log('\nexample9'); let params = {}; let ind = 1; for (let parm of allParms) { params[`p${ind++}`] = parm; }; console.log(params); }; example9("a", "b", "c");
example9 { p1: 'a', p2: 'b', p3: 'c' }
Gist
Copyright ©1993-2024 Joey E Whelan, All rights reserved.