10-2. Object 오브젝트(ES3 기준) / 프로퍼티 리스트
빌트인 Object 프로퍼티(ES3)
빌트인 Object 오브젝트라고 부르는 것이 맞지만 편의를 위해 빌트인 Object라고 부르겠습니다.
빌트인 Object 강좌는 ES3와 ES5로 나뉘어져있습니다.
이 장은 ES3 기준입니다.
프로퍼티 리스트(ES3)
이름 | 개요 |
---|---|
new Object() | 파라미터 데이터 타입의 인스턴스 생성 |
Object() | Object 인스턴스 생성 |
Object.prototype
이름 | 개요 |
---|---|
constructor | 생성자 |
valueOf() | 프리미티브 값 반환 |
hasOwnProperty() | 프로퍼티 소유 여부 반환 |
propertyIsEnumerable() | 프로퍼티 열거 여부 반환 |
isPrototypeOf() | prototype의 존재 여부 반환 |
toString() | 문자열로 변환 |
toLocaleString() | 지역화 문자열로 변환 |
new Object()
Number와 String은 각 타입에 맞는 인스턴스를 만들게 되지만 new Object()는 파라미터 값 타입에 따라서 인스턴스를 만들기도 합니다.
예를들면, 파라미터 값의 타입이 Number이면 Number 인스턴스를 만들고, String이면 String 인스턴스를 만듭니다.
Object()
Object() 함수는 Object 인스턴스를 생성합니다.
다만, new 연산자를 사용하지 않은 것 뿐입니다.
Number() 함수와 String() 함수가 값의 타입(유형)을 변형하는 것에 비하면 차이가 많이 납니다.
valueOf()
프리미티브 값을 반환합니다.
여기서 프리미티브 값이란 인스턴스에 설정된 값입니다.
hasOwnProperty()
프로퍼티 소유 여부를 반환합니다.
프로퍼티는 { key: value } 입니다.
has는 ‘가지고있다’ 라는 뜻이고 자바스크립트에서 Own은 ‘내가 만든’이라는 뜻입니다.
내가 만든 프로퍼티는 수정 삭제가 가능하지만 원래 있던 프로퍼티는 수정 삭제가 불가능하다는 의미가 포함되어있습니다.
propertyIsEnumerable()
프로퍼티 열거 여부입니다.
Enumerable 열거할 수 있는, 프로퍼티를 열거할 수 있느냐 라는 뜻입니다.
isPrototypeOf()
프로토타입의 존재여부를 반환합니다.
toLocaleString()
Number 오브젝트의 toLocaleString()은 숫자를 지역화 문자로 변형했습니다.
예를 들면 숫자를 한자로 표시했죠?
String 오브젝트에서 locale은 위치를 나타냈습니다.
전, 후, 그리고 같은 위치
여기서 ES3 기준, 빌트인 오브젝트 오브젝트의 특징이라고 한다면, 여섯개의 함수가 있죠?
1. valueOf()
2. hasOwnProperty()
3. propertyIsEnumerable()
4. isPrototypeOf()
5. toString()
6. toLocaleString()
여섯개의 함수는 빌트인 오브젝트로 인스턴스를 만드는 오브젝트에 모두 포함됩니다.
인스턴스를 만들 수 없는 오브젝트엔 포함되지 않지만 인스턴스를 만드는 오브젝트엔 모두 포함됩니다.
이것이 ES3 기준에 빌트인 오브젝트 오브젝트의 특징입니다.
그래서 ES5와 ES3를 구분했습니다.
~~.proto.proto : <- 여기서 마지막 __proto__에 위 6가지 함수가 포함되는 것입니다.
이것이 특징입니다.
이에 대해서는 계속해서 살펴보겠습니다.