const FOO1 = (a = 20, b = a + 30) => { return a + b; } console.log("FOO1 = " + FOO1(undefined, 10)); const FOO2 = (c = FOO1()) => { return c; } console.log("FOO2 = " + FOO2()); let FOO3 = FOO1; console.log("FOO3 = " + FOO3()); |
2 answers
You do not pass any parameters to the function. Therefore, the a parameter takes a default value of 20 . The parameter b is the default а + 30 = 20 + 30 = 50 . Result a + b = 20 + 50 = 70
const FOO1 = (a = 20, b = a + 30) => { console.log("a=" + a + ", b=" + b + ", result=" + (a + b)) return a + b; } console.log("FOO1 = " + FOO1(undefined, 10)); const FOO2 = (c = FOO1()) => { return c; } console.log("FOO2 = " + FOO2()); - Understood, I thought in the case of FOO2 FOO1 has already taken the value 30. And she again volunteered with the default settings. THX! - Alex M55
|
In your second call, FOO1() takes the value 70 , which is not surprising, since this time it was not set to the default value for 2 arguments.
const FOO1 = (a = 20, b = a + 30) => { return a + b; } console.log("FOO1 = " + FOO1(undefined, 10)); console.log("FOO1 = " + FOO1()); const FOO2 = (c = FOO1()) => { return c; } console.log("FOO2 = " + FOO2()); let FOO3 = FOO1; console.log("FOO3 = " + FOO3()); |