라이브러리

[JAVASCRIPT] Object.defineProperties(obj, descriptors) - 여러 개의 속성을 한 번에 정의




Object.defineProperties()

`Object.defineProperties()` 메서드는 객체의 속성을 정의합니다. 이 메서드는 객체에 새로운 속성을 추가하거나 기존 속성을 수정할 수 있습니다. 속성을 정의할 때, 속성의 getter, setter, writable, enumerable, configurable 옵션을 지정할 수 있습니다.

Syntax

#hostingforum.kr
javascript

Object.defineProperties(obj, descriptors)



* `obj`: 객체
* `descriptors`: 속성을 정의할 객체

속성 옵션

속성을 정의할 때, 다음 옵션을 지정할 수 있습니다.

* `get`: 속성의 getter 함수
* `set`: 속성의 setter 함수
* `value`: 속성의 기본값
* `writable`: 속성이 writable 여부 (기본값: `true`)
* `enumerable`: 속성이 enumerable 여부 (기본값: `false`)
* `configurable`: 속성이 configurable 여부 (기본값: `false`)

예제

#hostingforum.kr
javascript

// 객체 생성

let person = {};



// 속성을 정의할 객체

let descriptors = {

    name: {

        value: 'John',

        writable: true,

        enumerable: true,

        configurable: true

    },

    age: {

        value: 30,

        writable: true,

        enumerable: true,

        configurable: true

    },

    getAge: {

        get: function() {

            return this.age;

        },

        enumerable: true,

        configurable: true

    }

};



// 속성을 정의

Object.defineProperties(person, descriptors);



// 속성 확인

console.log(person.name); // John

console.log(person.age); // 30

console.log(person.getAge()); // 30



// 속성 수정

person.name = 'Jane';

person.age = 31;

console.log(person.name); // Jane

console.log(person.age); // 31

console.log(person.getAge()); // 31



// 속성 삭제

delete person.name;

delete person.age;

delete person.getAge;



// 속성 확인

console.log(person); // {}



결과

속성을 정의한 후, 속성을 확인한 결과는 다음과 같습니다.

* `name` 속성: `Jane`
* `age` 속성: `31`
* `getAge` 속성: `31`

속성을 삭제한 후, 속성을 확인한 결과는 다음과 같습니다.

* `person` 객체: `{}` (속성이 모두 삭제됨)

주의

속성을 정의할 때, `value` 옵션을 지정하지 않으면 속성이 undefined로 초기화됩니다. 또한, `writable`, `enumerable`, `configurable` 옵션을 지정하지 않으면 기본값이 적용됩니다.

속성을 삭제할 때, `delete` 연산자를 사용하여 속성을 삭제할 수 있습니다. 속성을 삭제한 후, 속성을 확인할 때, 속성이 undefined로 초기화됩니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 1 페이지

검색

게시물 검색