✏️11.5 매개변수를 질의 함수로 바꾸기

리팩터링 전

availableVacation(anEmployee, anEmployee.grade);

function availableVacation(anEmployee, grade) {
  // calculate vacation...

리팩터링 후

availableVacation(anEmployee)

function availableVacation(anEmployee) {
  const grade = anEmployee.grade;
  // calculate vacation...

🧷 배경

매개변수 목록에서 중복을 피하는게 좋고 짧을수록 이해하기 쉽다. 피호출 함수가 스스로 쉽게 결정할 수 있는 값을 매개변수로 건네는 것도 불필요한 작업이므로 일종의 중복이다. 의미 없이 코드가 복잡해지는 것을 막는다.

🧷 절차

  1. 필요하다면 대상 매개변수의 값을 계산하는 코드를 별도 함수로 추출한다.

  2. 함수 본문에서 대상 매개변수로의 참조를 모두 찾아서 그 매개변수의 값을 만들어주는 표현식을 참조하도록 바꾼다. 하나 수정할 때마다 테스트한다.

  3. 함수 선언 바꾸기로 대상 매개변수를 없앤다.

🧷 예시

🧷 리팩터링 전

🧷 리팩터링 후

Last updated