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.