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 |