[javascript] 객체의 특정 속성에 대한 읽기 전용 설정

자바스크립트에서 객체의 속성을 읽기 전용으로 설정하는 방법을 알아봅시다.

1. Object.defineProperty 메서드

Object.defineProperty 메서드를 사용하여 객체의 속성을 정의할 수 있습니다. 이 메서드는 해당 객체와 속성명, 그리고 속성의 구성을 인자로 받습니다.

다음은 읽기 전용으로 설정된 속성을 가진 객체를 생성하는 예제입니다.

let obj = {};

Object.defineProperty(obj, 'readOnlyProperty', {
  value: 10,
  writable: false
});

console.log(obj.readOnlyProperty); // 10
obj.readOnlyProperty = 20; // 에러 발생
console.log(obj.readOnlyProperty); // 10

위의 코드에서 readOnlyProperty 속성은 writable: false로 설정되어 있기 때문에 값을 변경할 수 없습니다.

2. Object.freeze 메서드

Object.freeze 메서드를 사용하여 객체 전체를 읽기 전용으로 만들 수도 있습니다. 이를 통해 객체의 속성을 모두 읽기 전용으로 설정할 수 있습니다.

다음은 Object.freeze 메서드를 사용하여 객체를 읽기 전용으로 만드는 예제입니다.

let obj = {
  readOnlyProperty: 10
};

Object.freeze(obj);

console.log(obj.readOnlyProperty); // 10
obj.readOnlyProperty = 20; // 에러 발생
console.log(obj.readOnlyProperty); // 10

결론

자바스크립트에서 객체의 속성을 읽기 전용으로 설정하는 방법으로 Object.defineProperty 메서드와 Object.freeze 메서드를 사용할 수 있습니다. 이를 통해 속성 또는 객체 전체를 수정할 수 없도록 만들 수 있습니다.

더 자세한 내용은 MDN web docs를 참고하세요.