내장 생성자 객체내장 객체웹브라우저 객체 : 웹 브라우저와 관련된 기능, 속성window : 속성location : 주소 관련 객체history : 방문 기록 관련 기능, 속성screen : navigatordocument : { 키 : 값, 키: 값 ... }
{ } === new Object();
값 : 모든 형태의 자료 - 원시타입 + 객체
함수 객체 -> 다른 객체를 만드는 객체(생성자 함수 객체)
- 함수 생성자 객체의 prototype 상속
- 함수 생성자 호출 this 값이 새로 만들어질 객체로 변경
- 초기화
[[Prototype]] : 프로토 타입 체인 : 객체간의 상속
객체 - 프로토타입 체인 - 객체 : 상속
proto 속성 : 프로토타입 체인 변경
Object.setPrototypeOf(...)
- 프로토타입 체인의 변경
Object.getPrototypeOf(...)
- 프로토타입 체인 확인
- 프로토타입의 체인 연결 관계인가를 체크
값(value)
쓰기 가능(writable)
false : 수정불가
열거 가능(enumerable)
false : for ... in :노출불가, Object.keys(...) : 키값 열거 불가
재정의 가능(configurable)
false : 설정 변경 불가, 삭제 불가
(다만! writable : true인 경우 1회 한해서 false변경 가능)
읽기(get)쓰기(set)열거 가능(enumerable)재정의 가능(configurable)Object.getOwnPropertyDescriptor
Object.defineProperty
- 열거할 수 있는 프로퍼티 이름만 배열로 만들어 반환
- 열거할 수 있는 프로퍼티와 열거할 수 없는 프로퍼티의 이름 모두 배열로 만드는 점이 특징
Object.preventExtensions : 속성 추가 불가
Object.seal
Object.freeze