[javascript] 객체 속성의 접근 권한 설정
JavaScript에서 객체 속성에 대한 접근을 제어하고 싶을 때가 있습니다. 이를 통해 보안을 강화하고 속성을 안전하게 유지할 수 있습니다. JavaScript는 객체 속성에 대한 접근을 제어하기 위해 몇 가지 방법을 제공합니다.
1. 객체 속성의 접근자 속성 활용
JavaScript는 get
및 set
메서드를 활용하여 객체 속성에 대한 접근을 제어할 수 있습니다. 이를 통해 속성에 대한 읽기 및 쓰기 작업을 제어할 수 있습니다.
예를 들어, 다음은 get
및 set
메서드를 사용하여 속성에 대한 접근을 제어하는 예시입니다.
let obj = {
_val: 0,
get val() {
return this._val;
},
set val(value) {
if (value >= 0) {
this._val = value;
} else {
console.log('음수는 설정할 수 없습니다.');
}
}
};
obj.val = 10; // set 메서드 호출
console.log(obj.val); // get 메서드 호출
obj.val = -5; // 음수는 설정할 수 없습니다. 출력
2. Object.defineProperty 메서드 활용
Object.defineProperty
메서드를 사용하여 객체의 속성에 대한 속성을 정의할 수 있습니다. 이를 통해 속성의 가시성과 수정 가능 여부 등을 설정할 수 있습니다.
예를 들어, 다음은 Object.defineProperty
메서드를 사용하여 속성의 속성을 정의하는 예시입니다.
let obj = {};
Object.defineProperty(obj, 'name', {
value: 'John',
writable: false // 쓰기 금지
});
console.log(obj.name); // John 출력
obj.name = 'Doe'; // 에러: Cannot assign to read only property 'name' of object
위의 방법을 사용하여 JavaScript 객체 속성에 대한 접근을 제어할 수 있습니다. 이를 통해 속성에 대한 안전한 접근을 보장할 수 있습니다.