Javascript 에서는 변수 이외에도 property라는 형태로 객체정보를 생성하고 사용할 수 있다.
01. property 종류
1) 데이터 프로퍼티 (data property)
- 키와 값으로 구성된 일반적인 프로퍼티
2) 접근자 프로퍼티 (accessor property)
- 자체적으로는 값을 갖지 않고 다른 데이터 프로퍼티의 값을 읽거나 저장할 때,
사용하는 접근자 함수로 구성된 프로퍼티
02. property 속성
property | 속성 | 설명 | ||||
공통 | Enumerable | 프로퍼티가 열거 가능여부 | ||||
Configurable | 해당 프로퍼티의 변경 가능여부 | |||||
데이터 프로퍼티 | Value | 항목의 값을 저장 | ||||
Writable | 값의 변경 가능여부 | |||||
접근자 프로퍼티 | getter | getter 메소드로서 사용되는 함수를 정의 | ||||
setter | setter 메소드로서 사용되는 함수를 정의 |
03. property 속성 정의
- Object.defineProperty 메소드를 이용해서 프로퍼티를 정의할 수 있다.
데이터 프로퍼티
var kingPork = {}; Object.defineProperty(kingPork, 'name', { value: 'kingPork', enumerable: true, configurable: true, writable: true }); console.log(kingPork); //console 내용 //> Object { name: "kingPork" }
접근자 프로퍼티
var kingPork = { _name: 'kingPork' }; Object.defineProperty(kingPork, 'name', { get: function() { return this._name; }, set: function(value) { this._name = value; }, enumerable: true, configurable: true }); console.log(kingPork.name); //console 내용 //> "kingPork"
04. property 속성 가져오기
var kingPork = { name: 'kingPork' }; console.log(Object.getOwnPropertyDescriptor(kingPork, 'name')); //console 내용 //> Object { value: "kingPork", writable: true, enumerable: true, configurable: true }
'JavaScript' 카테고리의 다른 글
[JavaScript] 키코드 정리 (JavaScript keyCode) (0) | 2021.07.17 |
---|---|
[JavaScript] Date 객체 사용 시 주의해야 할 점 (크로스 브라우징 이슈) (1) | 2021.07.06 |
[JavaScript] 논리 연산자(&&, ||)를 활용한 간결하고 효율적인 스크립트 작성 TIP (0) | 2021.07.02 |
[JavaScript] 참 같은 값과 거짓 같은 값? truthy와 falsy (4) | 2021.07.01 |
[JavaScript] String을 Number 타입으로 형변환 (자동, 명시적) (3) | 2021.07.01 |