Ch 4. 함수- 매개변수 패턴

매개변수 패턴

객체 구조분해할당

user 객체의 name 멤버변수를 들고오려고 한다. 이때 객체구조분해 할당을 포함해 총 3가지 방법으로 인자를 사용 가능하다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const user = {
name: "Heropy',
age: 85
}

fucntion getName(user) {
return user.name
}
fucntion getName(user) {
const {name} = user //객체 구조분해할당
return name
}
fucntion getName({name}) {//객체 구조분해할당
return name
}

console.log(getName(user))

배열 구조 분해 할당

fruits 배열의 두번째 요소를 들고오려 한다. 이때 배열구조분해 할당을 사용 가능하다.

1
2
3
4
5
6
7
8
9
10
11
const fruits = ['Apple','Banana','Cherry']

fuction getSecondItem(array) { //일반적인 사용
	return array[1]
}
fuction getSecondItem({,b}) { //배열구조분해할당
	return b
}

console.log(getSecondItem(fruits)) //Banana

나머지 매개변수(rest parameter)

나머지 매개변수를 사용해 들어오는 인자 개수와 상관없이 인자 자체를 배열화 시킬 수 있다.

1
2
3
4
5
6
7
8
9
10
11
function sum(...rest) {
  console.log(rest); //들어온 매개변수를 배열로 지닌다.
  console.log(arguments); //항상 함수 내에서 사용 가능하다.
  return rest.reduce(function (acc, cur) {
    return acc + cur;
  }, 0);
}

console.log(sum(1, 2)); //3
console.log(sum(1, 2, 3, 4)); //10
console.log(sum(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)); //55
  • argument : 함수로 들어오는 모든 인수의 정보를 지니고 있으나 배열 데이터가 아닌 array-like이기 때문에 활용도 떨어진다.