자바스크립트 중급 강좌 #3 - 객체 메소드(Object methods), 계산된 프로퍼티(Computed property)
Computed property

이렇게 age를 직접 써줄 수도 있지만,

a를 대괄호로 묶어서 넣어줄 수도 있다. 그러면 a라는 문자열이 아니라, a 에 할당된 값이 들어가게 된다.
이것을 computed property 라고 한다.

이렇게 식 자체를 넣는 것도 가능하다.


이렇게 어떤 것이 키가 될 지 모르는 경우에 유용하다.
객체 메소드 (Object Methods)

Object.assign() : 객체 복제

user 변수에는 객체가 들어가 있는 것이 아니라, 객체가 저장된 메모리 주소인 객체에 대한 참조값이 저장된다.
그러므로, cloneUser에 user 를 넣는 것은 객체가 복사되면서 들어가는 게 아니라 그 참조값만 복사되는 것이다.

이런 경우, 하나의 객체를 두 변수에서 참조하고 있는 게 된다.
그러므로 cloneUser의 name을 바꾸면 user의 name도 같이 바뀐다.

객체를 복사하고 싶다면 Object.assign 메소드를 써야한다.
object.assign 의 첫번째 매개변수는 초기값이고, 두번째 배개변수가 초기값에 병합된다.

이 경우, 같은 객체가 아니므로 newUser의 name을 바꿔도 user의 name 은 바뀌지 않는다.

초기값에 user를 병합하는 것이므로 총 3개의 프로퍼티를 갖게 된다.

만약 key 가 같다면, 덮어쓴다.

2개 이상 병합도 가능하다.
Object.keys() : 키 배열 반환

user의 key 들을 배열로 반환한다.
Object.values() : 값 배열 반환

user의 value 만 배열로 반환한다.
Object.entries() : 키/값 배열 반환

키와 값을 쌍으로 묶어서 배열로 반환한다.
Object.fromEntries() : 키/값 배열을 객체로 반환

키와 값을 쌍으로 묶어준 배열을 객체로 반환한다.
'자바스크립트 중급 강의' 카테고리의 다른 글
문자열 메소드(String methods) - 자바스크립트 중급 강좌 #6 (0) | 2021.10.27 |
---|---|
숫자, 수학 method (Number, Math) - 자바스크립트 중급 강좌 #5 (0) | 2021.10.27 |
심볼(Symbol) - 자바스크립트 중급 강좌 #4 (0) | 2021.10.27 |
생성자 함수 - 자바스크립트 중급 강좌 #2 (0) | 2021.10.27 |
변수, 호이스팅, TDZ(Temporal Dead Zone) - 자바스크립트 중급 강좌 #1 (0) | 2021.10.27 |
댓글