I've just started learning about function. and here is what gives me difficulty.
const Func = () => {
return () => {
console.log('hello');
};
};
const innerFunc = Func();
innerFunc(); // 1.
Func(); //2.
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" frameborder="0"></iframe>
I don't understand why 'hello' doesn't show up on console trying with 2.
Aren't both innerFunc and Func names of function?
I don't know the difference between them.
Sorry for my bad English.
CodePudding user response:
Func()
, it returns a function which will not be executed until you run the result with ()
like you are doing with 1.
.
By doing const innerFunc = Func();
you are assigning the function returned from Func
into innerFunc. So to call it, you need to run it like this: innerFunc()
.
CodePudding user response:
Your function 'Func' returns another function from inside, so when you call Func(), then it will return another function which you named as 'innerFunc' and calling innerFunc will return the output as hello.
When you try with Just 'Func()', it will just return another function which you returned inside Func.
CodePudding user response:
Starting to learn about functions, just look at
const Func = () => {
console.log('hello');
};
Func(); // logs hello to the console
What you have here is a function inside of function, which is more complicated and not necessarily beginner friendly.