Reputation: 15
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.
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.
Upvotes: -1
Views: 100
Reputation: 1709
Func()
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()
.
Upvotes: 0
Reputation: 47
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.
Upvotes: 0
Reputation: 34
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.
Upvotes: 0