var o = {p: 42, q: true};
var {p: foo, q: bar} = o;
console.log(foo); // 42
console.log(bar); // true
=> p, q를 특정지어 새롭게 할당하면 새로운 변수에 저장이 됨
var {a = 10, b = 5} = {a: 3};
console.log(a); // 3
console.log(b); // 5
=> 이렇게가 되면 데이터들을 오브젝트로 정의하면서도 함수에 default값을 넣듯이 데이터의 활용들이 다채로워질듯
var {a: aa = 10, b: bb = 5} = {a: 3};
console.log(aa); // 3
console.log(bb); // 5
=> 앞에 있는 새로운 변수에 저장하기를 이용해서 한단계 업그레이드 시킬 수 있음
=> 뭔가 헤깔림 근데 변수를 정의할 때, 들어가는 친구를 기본값이라는 걸 기억하기
=> for of 안에 넣어서도 구조분해할당을 할 수 있음 쌉 가능
function userId({id}) {
return id;
}
function whois({displayName: displayName, fullName: {firstName: name}}){
console.log(displayName + " is " + name);
}
var user = {
id: 42,
displayName: "jdoe",
fullName: {
firstName: "John",
lastName: "Doe"
}
};
console.log("userId: " + userId(user)); // "userId: 42"
whois(user); // "jdoe is John"
=> 구조분해할당을 함수 안에 넣어서 오브젝트를 인자로 넣고 원하는 특정 데이터를 리턴해낼 수 있다.
=> 특정 칼럼을 변수로 저장해 이용하는 것도 가능
Rest/Spread Properties for ECMAScript 제안(stage 3)에서는 구조 분해에 rest 구문을 추가하고 있습니다. rest 속성은 구조 분해 패턴으로 걸러지지 않은 열거형 속성의 키를 가진 나머지 항목들을 모읍니다.
=> Reset이라는 있기는 한데, 그냥 ... 하면 되지 않나 해볼까.
=> 안되네~