
229
8.3 함수 매개변수
마찬가지로, 객체 인자를 받는 함수를 정의할 때도 인자로 받은 객체를 매개변수로
분해할 수 있습니다. 이번에는
x
와
y
프로퍼티가 있는 객체로 벡터를 나타냅니다.
//
스칼라
값을
벡터에
곱합니다
.
function vectorMultiply({x, y}, scalar) {
return { x: x*scalar, y: y*scalar };
}
vectorMultiply({x: 1, y: 2}, 2) //
=
> {x: 2, y: 4}
위 예제는 분해된 매개변수 이름이 전달된 객체의 프로퍼티 이름과 일치하므로 훨
씬 이해하기 쉽습니다. 하지만 프로퍼티를 다른 이름의 매개변수로 분해해야 한다
면 문법이 복잡해집니다. 다시 벡터 덧셈 예제를 봅시다.
function vectorAdd(
{x: x1, y: y1}, //
첫
번째
객체를
x1
과
y1
매개변수로
분해합니다
.
{x: x2, y: y2} //
두
번째
객체를
x2
와
y2
매개변수로
분해합니다
.
)
{
return { x: x1 + x2, y: y1 + y2 };
}
vectorAdd({x: 1, y: 2}, {x: 3, y: 4}) //
=
> {x: 4, y: 6}
{x:x1, y:y1}
같은 문법을 분해할 때는 매개변수 이름과 프로퍼티 이름을 잘 구분
해야 ...