javascriptfunctionreturn

I don't know the difference


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.


Solution

  • 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().