라이브러리
[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로 초기화됩니다.
댓글목록
등록된 댓글이 없습니다.