개인과제) 오늘 만난 문제
매개변수가 필요한 함수 A를 인자로 받는 함수 B에서 함수 A에 매개변수를 어떻게 넣을 수 있을까?!

이벤트리스너의 콜백 함수로 타워를 설치하는 함수를 넣으려는 와중, 저 함수에 필요한 매개변수를 어떻게 넣어야하는지에 대해 고민이 되기 시작했다!! 만약 아래처럼,
buyBlackButton.addEventListener("click", placeNewTower("pawn", "black"));
이렇게 해버린다면, 함수가 아니라 저 함수를 실행한 return 값이 매개변수에 들어가버리기 때문에, 원하는대로 작동하지 않을 것이고, 그렇다고 매개변수를 활용하지 않자니, 저렇게 세 번 재사용이 불가능한 상황이었다!! 해결 방식을 좀 서치해보고 고민해봤더니 익명 함수 또는 화살표 함수로 placeNewTower를 감싸주면 매개변수를 투입할 수 있다는 걸 깨달았다!!
익명함수 anonymous function
함수명이 없는 함수 표현식을 말한다!! 이름이 없기에 따로 호출이 불가능하므로, 익명함수를 변수에 할당해 활용하거나, 즉시 실행 함수로 일회용 처리하거나, 다른 함수의 매개변수에 넣어 콜백함수로 활용할 수 있다!!

깡통 화살표 함수를 콜백 함수로 던져주고, 그 안에서 원하는 매개변수를 넣은 placeNewTower를 실행시킴으로써, 원하는 방식으로 구현할 수 있게 됐다!! 보통 콜백함수에 늘 알게 모르게 익명함수를 활용해왔던 것인디, 정확한 용례를 몰랐던 것이다!!! 프로그래밍 공부 시작할 쯤에 소괄호 ()가 붙은 함수와 붙지 않은 함수에 대해 정리했던 적이 있는데, 추억이 새록새록 떠오르는 문제 상황이었다!!
'TIL' 카테고리의 다른 글
| 241230 TIL - charAt(), at() (1) | 2024.12.31 |
|---|---|
| 241227 TIL - 개인과제01 (3) | 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 |