디스트럭처링은 오브젝트나 어레이, 그 외 요소들 안의
변수를 바깥으로 끄집어내서 사용할 수 있도록 하는 것.
See the Pen 200918-10 by hwd3004 (@hwd3004) on CodePen.
notifications - 유저알림
follow - 누군가 유저를 팔로우하면 notification을 보냄
alerts - 최근 소식같은게 있으면 알림을 보내주는 용도로 사용
unfollow - 누군가 언팔로우 했을때는 알림을 받고 싶지 않으니 false
만약 유저의 notifications에 alerts가 true로 되어있을 때,
follow도 true로 되어있다면, 이메일을 보내주려한다.
누군가 이 유저를 follow했을 때 이런 부분들을 체크하도록 하는 것.
이런걸 체크할때 예전에는 이렇게 해야만 했다.
이런식으로 체크 한다음에 이 안에서 send email 같은걸 해줘야한다.
이렇게 하면 만약의 경우에 문제가 생길수 있는데,
follow의 값이 아예 없을때, 혹은 notifications가 통채로 없을때.
그런 경우에는 이 부분이 undefined로 나온다.
See the Pen 200918-11 by hwd3004 (@hwd3004) on CodePen.
오브젝트이니까 오브젝트 디스트럭처링을 하여서 follow를 가져오고자 한다면,
한 스텝씩 해보자.
const follow = settings
타겟 오브젝트인 settings에서 구조상 follow가 나올때까지,
settings의 안을 찾아보는거다.
const {follow} = settings
먼저 중괄호로 follow를 감싸주고, follow에 도달하기전에
먼저 notifications로 접근하여야하니,
const {notifications: {follow}} = settings
settings 안의 notifications 안으로 접근하고, follow를 가져오면서 동시에 같은 이름의 변수를 만든다.
참고로 여기서 console.log(follow) 하면 true가 뜨지만,
console.log(notifications) 하면
Uncaught ReferenceError: notifications is not defined 에러가 뜬다.
여기서 notifications는 변수로 만들면서 가져오는게 아니다.. notifications 안에 있는 follow를 가져온다.
notifications는 settings 오브젝트 밖으로 꺼내지지 않았다.
notifications 안으로 접근해서 follow만 가져온 것이다.
const {notifications: {follow}, color} = settings
color 값을 통채로 가져오고 싶다면 그냥 이렇게 하면 된다.
color를 가져오면서 동시에 같은 이름의 변수를 만든다.
이런 방식은, 큰 오브젝트에서 특정 변수나, 그안에 속한 작은 오브젝트에
접근할 수 있도록 해준다.
See the Pen 200918-12 by hwd3004 (@hwd3004) on CodePen.
notofications 오브젝트만 가져오고 싶다면 이렇게 하면 된다.
const notifications = settings.notifications
이 코드와 같다.
'ES6' 카테고리의 다른 글
Renaming (0) | 2020.09.18 |
---|---|
Array Destructuring (0) | 2020.09.18 |
Array.findIndex(), Array.fill() (0) | 2020.09.18 |
Array.from() - 매우 중요 (0) | 2020.09.18 |
string 메소드 - includes(), repeat(), startsWith(), endsWith() (0) | 2020.09.18 |