velopert / learnjs

벨로퍼트와 함께하는 모던 자바스크립트
https://learnjs.vlpt.us/
85 stars 46 forks source link

06. 비구조화 할당 (구조 분해) 문법 · GitBook #27

Open utterances-bot opened 3 years ago

utterances-bot commented 3 years ago

06. 비구조화 할당 (구조 분해) 문법 · GitBook

https://learnjs.vlpt.us/useful/06-destructuring.html

dormirMais commented 3 years ago

질문이 있습니다..! 맨아래나 혹은 중간중간에 const { state: { information: { name, languages } }, value } = deepObject;

const extracted = { name, languages, value };

console.log(extracted);

해당 코드의 첫번째 문단을 보면 객체를 생성하는것 같은데 객체의 이름을 지정하지 않고 변수?들을 가져오는데요. 아랫 문단에서 특정 객체에 대한 지정없이 바로 어떻게 요소들을 불러오는 것인지 이해가 잘 되지 않네요...! 제가 말해놓고도 설명을 엄청 못해서 죄송합니다ㅠ. 답변해 주시면 감사하겠습니다.!

wjdals108 commented 3 years ago

말씀하신 첫번째 문단은 객체를 생성하는게 아니라 비구조화 할당 (구조 분해) 을 하는 것입니다.

deepObject 라는 객채에 크게 state, value 이렇게 있고, state 에 information 에 name 과 languages 가 있는 거죠.

name과 languages 처럼 깊숙한 객체 안에 있는 값을 추출하는 법을 보여주는 예제로 보입니다.

deepObject 객체 안에 있는 name, languages, value 를 추출해서 아래의 extracted 객체에서 사용한 것이 되겠죠.

제 생각이고 정확한 정보는 아니니 참고만 하시길 바라겠습니다.

yongyonghw commented 2 years ago

비구조화 할당 이후 값을 변경하면, 원본 값이 변하지 않는데요. shallow copy , deep copy 여부도 설명되면 좋을거 같아요.

zuzubibi commented 2 years ago

22.03.26

JunghooX commented 2 years ago

22.08.18