...
인수의 마지막에 위치한다.
자동으로 남은 모든 인수를 가진다.
const sumUp = (a, b, ...numbers)
sumUp(1, 5, 10, -3, 6, 10) -> a=1, b=5, ...numbers=10, -3, 6, 10
for(const num of arguments): function 키워드를 사용할 수 있는 함수 내에서만 사용 가능
배열과 비슷한 객체 제공(실제 배열은 아님)
rest 연산자가 생기기 전에 사용하던 방법
return 대신 함수를 사용할 수 있다.
const sumUp = (resultHandler, ...numbers) => {
const validateNumber = (number) => {
return isNaN(number) ? 0 : number;
};
let sum = 0;
for (const num of numbers) {
sum += validateNumber(num);
}
resultHandler(sum);
};
const showResult = (result) => {
alert('The result after addign all numbers is: ' + result);
}
sumUp(showResult, 1, 4, 'fdsa', -3, 6, 10);
sumUp으로 showResult를 호출하여 인자로써 전달하고 sumUp에서 sum을 showResult로 인자로써 전달한다.
js에는 신기한 기능이 정말 많다,,
함수를 호출할 때 combine(showResult.bind(this, 'result is: '), 'ADD', 1, 5);식으로 호출하게 되면 새로운 함수, 새로운 참조가 생성된다.