[클린코드 JS] 객체 구조분해할당
Object Destructuring Assignment(객체 구조분해할당)
함수의 매개변수에 객체 구조분해할당
function Person(name, age, location) {
this.name = name;
this.age = age;
this.location = location;
}
const marco = new Person('Marco', 30, 'Korea');
- 위와 같은 코드를 아래 코드처럼 구조분해할당을 활용하여 리팩토링 할 수 있다.
- 함수의 매개변수를 객체로 받고, 인수를 객체로 전달한다면, 전달하는 매개변수를 명시적으로 쓸 수 있으며 매개변수의 key만 같으면 되므로 매개변수의 순서가 다르더라도 상관 없다.
function Person({ name, age, location }) {
this.age = age;
this.name = name;
this.location = location;
}
const marco = new Person({ name: 'Marco', age: 30, location: 'Korea' });
함수의 매개변수 중 옵션 명시
- 또한 함수의 매개변수 중 옵션이 무엇인지 알려주는 데도 유용하다.
- 아래 코드의 함수에서 매개변수 중 name은 필수적이라는 것을 명시적으로 보여주고, 객체로 묶인 매개변수 {age, location}는 그 형태를 통해 옵션임을 알려준다.
function Person(name, { age, location }) {
this.age = age;
this.name = name;
this.location = location;
}
const options = {
age: 30,
location: 'Korea',
};
const Marco= new Person('Marco', options);
const orders = ['first', 'second', 'third'];
배열에서도 객체 구조분해할당
- 배열에 대해서도 구조분해할당을 할 수 있다.
const orders = ['first', 'second', 'third'];
const st1 = orders[0];
const rd1 = orders[2];
console.log(st1) // first
console.log(rd1) // third
- 위와 같은 코드에서 배열의 요소를 선택할 때, 아래처럼 객체로 구조분해할당하면 더 명시적으로 선택하여 사용할 수 있다.
const orders = ['first', 'second', 'third'];
const { 0: st2, 2: rd2 } = orders; // 배열의 인덱스를 key로 객체구조분해할당한다
console.log(st2); // first
console.log(rd2); // third
Author And Source
이 문제에 관하여([클린코드 JS] 객체 구조분해할당), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jangws/20.-객체-구조분해할당저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)