[javascript] 객체 속성의 접근 권한 설정

JavaScript에서 객체 속성에 대한 접근을 제어하고 싶을 때가 있습니다. 이를 통해 보안을 강화하고 속성을 안전하게 유지할 수 있습니다. JavaScript는 객체 속성에 대한 접근을 제어하기 위해 몇 가지 방법을 제공합니다.

1. 객체 속성의 접근자 속성 활용

JavaScript는 getset 메서드를 활용하여 객체 속성에 대한 접근을 제어할 수 있습니다. 이를 통해 속성에 대한 읽기 및 쓰기 작업을 제어할 수 있습니다.

예를 들어, 다음은 getset 메서드를 사용하여 속성에 대한 접근을 제어하는 예시입니다.

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 객체 속성에 대한 접근을 제어할 수 있습니다. 이를 통해 속성에 대한 안전한 접근을 보장할 수 있습니다.

참고 자료