function showName (name) {
console.log(arguments.length);
console.log(arguments[0]);
}
showName('Mike','Tom');
> 2
> 'Mike'
function showName (...names) {
console.log(names);
}
showName();
showName('Mike');
showName('Mike','Tom');
> []
> ['Mike']
> ['Mike','Tom']
나머지 매개변수는 argument이름 앞에 ...을 붙이면 사용 가능하다.
이 때, 매개변수로 넘어오는 모든 값들이 배열로 넘어오게 되며,
forEach문을 비롯한 함수들을 사용 가능하다.
function add(...numbers) {
let result = 0;
numbers.forEach( (prev) => {
return result += prev;
}
console.log(result);
)
}
add(1,2,3,4,5);
> 15
function User(name, age, ...skills) {
this.name = name;
this.age= age;
this.skills = skills;
}
const user1 = new User("Mike", 30, "html", "css");
const user2 = new User("Jane", 20, "html", "css","Javascript");
console.log(user2);
> User { name:"Jane", age: 20, skills: Array(3)}
let arr1 = [1,2,3];
let arr2 = [4,5,6];
let result = [0, ...arr1, ...arr2, 7,8,9];
console.log(result);
> [0,1,2,3,4,5,6,7,8,9]
배열은 물론 객체에도 적용 가능하다.
let user1 = {name:'Mike', age: 30};
let user2 = {...user};
-> 단순 복제 됨
user2.name = 'Tom';
console.log(user1.name);
console.log(user2.name);
> 'Mike'
> 'Tom'