Dev./javascript

[JS] 매개변수가 함수인지 확인하기

인쥭 2022. 3. 23. 14:44
반응형
  • [변수] instanceof Function을 활용하여 체크한다.
    • typeof [변수] === 'function'도 사용할 수 있다.

사용 예시

function callFunctions(init, ...functions) {
    return functions.reduce((acc, func) => {
      if(func instanceof Function)
        return func(acc);
      else
        throw new Error(`${func} is not Function`);
    }, init);
}

try {
    const result = callFunctions(
      1,
      value => value *= 100,
      value => value += 2,
      // 3,
      value => value -= 22,
      console.log,
    );
	console.log(result);
} catch(e) {
	console.log(e.message);
}
  • callFunctions는 초기값과 함수들을 받아 실행한 후 값을 return한다.
  • try 블록에서, console.log에 의해 80이 출력되지만 console.log는 아무것도 반환하지 않으므로 result는 undefined가 된다.
  • 주석 처리된 3을 주석해제하면 callFunction의 else 분기에 의해 에러가 반환된다.