Sky Archive

JavaScript

[Javascript] 객체 property 종류 및 속성

KingPork 2021. 7. 2. 12:32

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 }