[javascript] 객체 상수와 별칭 설정 방법

자바스크립트에서는 객체의 속성을 변경하거나 새로운 속성을 추가할 수 있습니다. 하지만 때로는 객체의 속성을 변경할 수 없도록 상수로 설정하고 싶을 때가 있습니다. 또한 긴 객체 이름을 간결하게 사용하고 싶을 때는 별칭(alias)을 설정할 수 있습니다.

객체 상수 설정

이를 위해서는 Object.defineProperty를 사용하여 객체에 속성을 추가하고, writable: false로 설정하여 값을 변경할 수 없도록 만들 수 있습니다. 예를 들어, 다음과 같이 person 객체에 상수인 PI를 추가할 수 있습니다.

const person = {};
Object.defineProperty(person, 'PI', {
  value: 3.14,
  writable: false
});

console.log(person.PI); // 3.14
person.PI = 3.1415;
console.log(person.PI); // 3.14

객체 별칭 설정

객체의 별칭을 설정할 때는 Object.defineProperty를 사용하여 get 함수를 정의하면 됩니다. 예를 들어, person 객체의 fullNamename의 별칭으로 설정하고 싶다면 아래와 같이 할 수 있습니다.

const person = {
  name: 'John Doe'
};
Object.defineProperty(person, 'fullName', {
  get: function() {
    return this.name;
  }
});

console.log(person.fullName); // John Doe

이렇게 하면 person.fullName을 통해 원래의 name 속성을 사용할 수 있습니다.

결론

자바스크립트에서 객체의 속성을 변경할 수 없도록 설정하려면 Object.defineProperty를 사용하여 writable: false로 설정하고, 객체의 속성을 별칭으로 사용하려면 get 함수를 정의하면 됩니다. 이를 통해 객체를 더욱 안정적으로 유지하고, 코드를 간결하게 작성할 수 있습니다.

참고 자료

  1. MDN Web Docs - Object.defineProperty