Home > Back-end >  I don't know the difference
I don't know the difference

Time:10-31

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.

  • Related