리턴값이 함수인 함수를 함수 선언문 방식으로 함수를 선언했더니 원하는 결과값이 나오지 않았다.
function foo(){
return function (){
console.log("test");
}
}
console.log(foo());
하지만 foo 를 변수에 할당을 하고 foo를 할당한 변수를 호출하니 원하는대로 실행이 되었다.
function foo(){
return function (){
console.log("test");
}
}
// foo 를 변수 mar에 할당 후 mar 호출
let mar = foo()
mar();
그 이유는 return문은 함수에서 결괏값을 반환할 때 사용하는 것인데,
foo()를 호출했을 때는
리턴안에 적힌 함수가 결과값이어서 함수 그대로를 반환한것이고,
다른 변수에 foo를 할당했을 때는
변수안에 리턴값 안에 있는 함수가 담기기 때문에 리턴안에 담긴 함수의 결과값이 반환이 된것이다.
'문제와 해결 > 자바스크립트' 카테고리의 다른 글
객체지향 프로그래밍 - 객체와함수,call,bind (0) | 2021.10.25 |
---|---|
엔터키 이벤트가 먼저 실행이 안될때 (0) | 2021.08.03 |
breadcrumbs 만들기 (0) | 2021.08.02 |
이벤트 (0) | 2021.05.13 |
다크모드로 전환하기 (0) | 2021.05.09 |