인프런 커뮤니티 질문&답변

쾌할한 전복님의 프로필 이미지
쾌할한 전복

작성한 질문수

[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문

함수 중복 제거하기(고차함수)

두 코드의 차이점이 궁금합니다.

작성

·

318

0

 책에 나와있는 내용인데요. 

1.

const func = () => {

return ()=> {

console.log("hello");

}; }; 

이렇게 함수를 선언하고 

2.

const innerFunc = func(); 

이렇게 함수를 변수에다 집어넣은 후 

3.

innerFunc(); 

함수를 선언을 하면 콘솔창에 hello라고 제대로 뜨는데 

1 번 바로 뒤에

func();

 를 호출하면 왜 콘솔창에 hello가 안뜨는지  궁금합니다. 

 

 

 

 

답변 3

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

func()는 리턴값으로 치환하면 됩니다. 그에 따라

()=> {

console.log("hello");

};

입니다.

이 함수를 다시 실행해야 콘솔에 핼로가 뜨는 겁니다.

 

0

감사합니다.

0

제로초님 그런데 혹시 저기서 

그냥 func(); 했을 때 하고 

func()(); 했을때 하고 차이점을 알려주실 수 있을까요?

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

func()는 위에 적은 것이고

func()()는 console.log('hello')입니다.

쾌할한 전복님의 프로필 이미지
쾌할한 전복

작성한 질문수

질문하기