자바스크립트에서 객체의 속성을 검증하고 유효성을 체크하는 방법은 여러 가지가 있습니다. 그 중 하나는 프로퍼티 디스크립터를 활용하는 것입니다. 프로퍼티 디스크립터는 객체의 속성에 대한 정보를 담고 있는 객체입니다.
프로퍼티 디스크립터는 주로 Object.defineProperty()
함수를 사용하여 정의됩니다. 이 함수는 새로운 속성을 객체에 추가하거나 이미 존재하는 속성을 수정할 수 있습니다. 또한, 속성의 유효성을 체크하는데 유용하게 활용할 수 있습니다.
아래는 프로퍼티 디스크립터를 사용하여 객체의 속성을 검증하고 유효성을 체크하는 예시 코드입니다.
const person = {};
Object.defineProperty(person, 'name', {
value: 'John',
writable: false,
enumerable: true,
configurable: false
});
console.log(person.name); // 출력: John
person.name = 'Jane'; // 에러: Cannot assign to read only property 'name' of object '#<Object>'
delete person.name; // 에러: Cannot delete property 'name' of object '#<Object>'
위 예시에서 Object.defineProperty()
함수를 사용하여 person
객체에 name
속성을 정의하였습니다. 이때, value
속성에 ‘John’ 값을 할당하고, writable
속성을 false
로 설정하여 값을 변경할 수 없도록 설정하였습니다. 또한, enumerable
속성을 true
로 설정하여 속성이 열거 가능하도록 만들었고, configurable
속성을 false
로 설정하여 속성을 삭제할 수 없도록 하였습니다.
위 코드를 실행하면, person.name
을 출력한 결과는 ‘John’이 나오게 됩니다. 그리고 person.name
값을 변경하려고 하거나 delete person.name
을 실행하면 에러가 발생합니다. 이렇게 프로퍼티 디스크립터를 사용하여 객체의 속성을 검증하고 유효성을 체크할 수 있습니다.
이 외에도 프로퍼티 디스크립터를 활용하여 객체의 속성을 검증하는 다양한 방법들이 있습니다. 참고할 만한 자료로는 MDN 문서를 확인해보시기 바랍니다.