1

i want to set an optional parameter to a function using javascript. i have a function defined like below,

const function1 = () => {
    setValue(!open);
};

i call it like below in other function

const main_function = () => {
    function1();
}

now i want to pass an optional parameter to function1 to accept an optional parameter that sets it to true or false instead of toggling based on previous value.

how can i fix this. could someone help me with this thanks.

saritha
  • 619
  • 2
  • 12
  • 25
  • 3
    `function1 = (optionalParam = false) => {}` – VLAZ Jul 17 '20 at 13:25
  • 3
    `setValue(!open);` don't do this. Use functional update as your new state depends on the previous state. `setValue(prevState => !prevState)`. – Ramesh Reddy Jul 17 '20 at 13:26
  • @VLAZ: so how do i call function1. – saritha Jul 17 '20 at 13:28
  • 3
    Does this answer your question? [Set a default parameter value for a JavaScript function](https://stackoverflow.com/questions/894860/set-a-default-parameter-value-for-a-javascript-function) – cbr Jul 17 '20 at 13:28
  • `function1()` or `function1(true)` or `function1(false)` – VLAZ Jul 17 '20 at 13:28

5 Answers5

5

I hope this helps someone, you can just set the value to null like code below:

 const function1 = ({arg1=null, arg2= false, arg3, ...}) => {
  
 }
Mortadha Fadhlaoui
  • 388
  • 1
  • 5
  • 16
1

Pass a default value like so:

function multiply(a, b = 1) {
  return a * b
}

multiply(5, 2)          // 10
multiply(5)             // 5

Example taken from MDN docs

Manjurul Khan
  • 59
  • 1
  • 3
1

we can't make function arguments optional in javascript directly. However, we can assign them a default value, in case no arguments is passed through. this is how you do it-

const abc = (arg1, arg2= 'default value') => {
//arg1 is required. however if arg2 is not passed in any case, the default value //will be used in place.
}
navinrangar
  • 904
  • 10
  • 20
0

You can check the if the argument is defined or not, like:

const function1 = (arg) => {
  setValue(arg === undefined ? !open : arg);
};
Muhammad Ali
  • 2,538
  • 2
  • 16
  • 21
0

As far as I can understand you want something like this.

const function1 = (param) => {
    setValue(params ? true : false);
}

It will set true if param is available otherwise false. Correct me if I'm wrong.

Uddesh Jain
  • 1,064
  • 2
  • 15
  • 16