[javascript] 객체의 프로퍼티를 접근 가능/불가능으로 설정하는 방법
JavaScript 객체의 프로퍼티에 대한 접근 가능성은 Writable
, Enumerable
, Configurable
속성을 사용하여 설정할 수 있습니다. 이러한 속성을 사용하여 객체의 프로퍼티를 읽기 전용으로 설정하거나, 숨김 처리하거나, 삭제 방지 등의 제어가 가능합니다.
이번 포스트에서는 객체의 프로퍼티에 접근 가능/불가능을 설정하는 방법에 대해 자세히 알아보겠습니다.
프로퍼티 속성
JavaScript 객체는 속성(property)을 가지고 있으며, 각 속성에는 value
, writable
, enumerable
, configurable
속성을 포함하여 객체에 대한 제어 권한을 설정할 수 있습니다.
value
: 프로퍼티에 저장된 값writable
: 프로퍼티의 값을 변경 가능한지 여부enumerable
: 프로퍼티가for...in
루프나Object.keys()
메서드에서 열거 가능한지 여부configurable
: 프로퍼티의 변경, 삭제, 속성 변경이 가능한지 여부
프로퍼티 제어하기
아래는 객체의 프로퍼티 속성을 통해 접근 가능성을 설정하는 방법에 대한 예제입니다.
// 객체 생성
let obj = {
name: "John",
age: 30
};
// 프로퍼티를 읽기 전용으로 설정
Object.defineProperty(obj, "name", { writable: false });
// 프로퍼티 숨김 처리
Object.defineProperty(obj, "age", { enumerable: false });
// 프로퍼티 삭제 방지
Object.defineProperty(obj, "id", { configurable: false });
위의 예제에서는 Object.defineProperty
메서드를 사용하여 obj
객체의 name
프로퍼티를 읽기 전용으로, age
프로퍼티를 숨김 처리로, id
프로퍼티를 삭제 방지 속성으로 설정하였습니다.
프로퍼티 접근 가능성 설정은 어플리케이션의 보안 및 유지보수에 중요한 영향을 미치므로, 주의하여 사용하여야 합니다.
결론
JavaScript의 Object.defineProperty
메서드를 사용하여 객체의 프로퍼티에 대한 접근 가능성을 설정할 수 있습니다. 이를 통해 프로퍼티의 값을 읽기 전용으로 만들거나, 숨김 처리, 삭제 방지 등의 제어가 가능해집니다.
이를 통해 안전하고 제어 가능한 코드를 작성하는 데 도움이 될 것입니다.
참고문헌: