본문 바로가기
Java Script/JS basic

JS] 계산기 / higher Order Functions and Passing Functions as Arguments

by CodeMia 2021. 8. 26.

이 전에 .addEventListener( ) 에서 함수를 인풋으로 사용하는 것을 보았다. 

여기서 .addEventListener( ) 같이 다른 함수를 인풋으로 받는 함수를 higher order function이라고 한다. 

아래는 클릭이 됐을 때 뭘할 지를 나타내는 코드이다.

여기서 주의 할 점은 인풋으로 들어갔을 때의 함수는 괄호( )를 사용하지 않는다는 것이다.

handleClick안에 파라미터가 없다면 괄호를 쓰지 않는다. 

document.querySelector(".drum").addEventListener("click", handleClick ); ⭕️

document.querySelector(".drum").addEventListener("click", handleClick( )); 

여기서 괄호를 넣어버리면 클릭시 함수가 실행 되는 것이아니라 페이지 열 때 바로 함수가 실행되어버린다. 

 

 

 

 

 

계산기 만들기

 

더하기 하는 함수

 

곱하기 하는 함수

 

 

higher order function

이렇게 매 번 계산 때마다 함수를 만들어야 하는 엄청난 고통이 따른다.

더 간단하게 하는 방법이 있다. 

higher order function을 사용하면 된다.

 

 

각 계산 함수를 미리 만들어 놓고서 

 

 

또 새로운 함수를 만들어서 파라미터로 (숫자1, 숫자2, 미리 입력한 함수이름)을 받는다. 

이 함수에 인풋이 들어오면 위 입력 받은 함수들을 호출 시킨다. 

 

 

 

 

'Java Script > JS basic' 카테고리의 다른 글

JS] 오디오 함수  (0) 2021.08.27
JS] debugger; 알아보기  (0) 2021.08.26
JS] anonymous function 익명 함수  (0) 2021.08.25
JS] .addEventListener( )  (0) 2021.08.25
JS] 드럼 킷 만들기  (0) 2021.08.25

댓글