정재상
정재상

Reputation: 15

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.

Upvotes: -1

Views: 100

Answers (3)

pazitos10
pazitos10

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

MikeBarberry
MikeBarberry

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

Ankit Kumar
Ankit Kumar

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

Related Questions