
1. writable, configurable, enumerable 속성은 객체의 속성을 정의할 때 사용하는 속성입니다.
- writable 속성은 속성을 읽기만 가능하도록 설정할 때 사용됩니다. writable 속성의 default 값은 true입니다.
- configurable 속성은 속성을 삭제하거나 재정의할 때 사용됩니다. configurable 속성의 default 값은 false입니다.
- enumerable 속성은 속성을 반복문으로 순회할 때 표시할 때 사용됩니다. enumerable 속성의 default 값은 false입니다.
2. writable 속성을 false로 설정하면 속성값을 변경하려고 할 때 에러가 발생하지 않고 속성값이 변경되지 않습니다. 이 경우 속성값은 읽기 전용이 됩니다.
3. descriptor의 get, set 함수는 속성값의 getter, setter 함수를 정의할 때 사용됩니다.
- get 함수는 속성값을 읽을 때 호출됩니다. get 함수는 반드시 return 값을 반환해야 합니다.
- set 함수는 속성값을 변경할 때 호출됩니다. set 함수는 속성값을 인수로 받습니다.
예를 들어, 다음 코드는 속성값의 getter, setter 함수를 정의한 예입니다.
#hostingforum.kr
javascript
let obj = {};
Object.defineProperty(obj, 'name', {
value: 'John',
writable: false,
enumerable: true,
configurable: true,
get: function() {
return this.value;
},
set: function(value) {
console.log('속성값이 변경되었습니다.');
this.value = value;
}
});
console.log(obj.name); // John
obj.name = 'Jane';
console.log(obj.name); // Jane
위 코드에서, 속성값의 getter 함수는 속성값을 읽을 때 호출되며, 속성값의 setter 함수는 속성값을 변경할 때 호출됩니다. 속성값의 setter 함수는 속성값을 인수로 받습니다.
2025-07-30 16:05