개인과제) 오늘 만난 문제
매개변수가 필요한 함수 A를 인자로 받는 함수 B에서 함수 A에 매개변수를 어떻게 넣을 수 있을까?!
이벤트리스너의 콜백 함수로 타워를 설치하는 함수를 넣으려는 와중, 저 함수에 필요한 매개변수를 어떻게 넣어야하는지에 대해 고민이 되기 시작했다!! 만약 아래처럼,
buyBlackButton.addEventListener("click", placeNewTower("pawn", "black"));
이렇게 해버린다면, 함수가 아니라 저 함수를 실행한 return 값이 매개변수에 들어가버리기 때문에, 원하는대로 작동하지 않을 것이고, 그렇다고 매개변수를 활용하지 않자니, 저렇게 세 번 재사용이 불가능한 상황이었다!! 해결 방식을 좀 서치해보고 고민해봤더니 익명 함수 또는 화살표 함수로 placeNewTower를 감싸주면 매개변수를 투입할 수 있다는 걸 깨달았다!!
익명함수 anonymous function
함수명이 없는 함수 표현식을 말한다!! 이름이 없기에 따로 호출이 불가능하므로, 익명함수를 변수에 할당해 활용하거나, 즉시 실행 함수로 일회용 처리하거나, 다른 함수의 매개변수에 넣어 콜백함수로 활용할 수 있다!!
깡통 화살표 함수를 콜백 함수로 던져주고, 그 안에서 원하는 매개변수를 넣은 placeNewTower를 실행시킴으로써, 원하는 방식으로 구현할 수 있게 됐다!! 보통 콜백함수에 늘 알게 모르게 익명함수를 활용해왔던 것인디, 정확한 용례를 몰랐던 것이다!!! 프로그래밍 공부 시작할 쯤에 소괄호 ()가 붙은 함수와 붙지 않은 함수에 대해 정리했던 적이 있는데, 추억이 새록새록 떠오르는 문제 상황이었다!!
'TIL&WIL' 카테고리의 다른 글
241227 TIL - 개인과제01 (1) | 2024.12.27 |
---|---|
241224 TIL - JSON.parse() (0) | 2024.12.24 |
241219 TIL - 개인과제04 (2) | 2024.12.20 |
241218 TIL - reduce(), concat(), 개인과제03 (3) | 2024.12.18 |
241217 TIL - 개인과제02, shift() (1) | 2024.12.17 |