JavaScript

객체 잠그기

jhlee_ 2020. 3. 19. 01:15

수정할 수 없게 만드는 방법

확장가능 속성, 재정의 가능속성, 쓰기 가능 속성

 

객체의 확장가능(extensible)

9.7.2 확장방지: Object.preventExtensions 메서드

인수로 받은 객체는 더이상 확장 불가능.

var person = { name: "Tom"};
Object.preventExtensions(person)'
person.age = 17;
console.log("age" in person);

 

Object.isExtensible 메서드 사용 - 확장가능한지 확인 가능

 

9.7.3 밀봉: Object.seal 메서드

인수로 받은 객체를 밀봉. 프로퍼티 추가 금지, 기존의 모든 프로퍼티 재정의 불가

추가, 삭제, 수정 불가 / 읽기, 쓰기만 가능

 

9.7.4 동결: Object.freeze 메서드

객체에 프로퍼티를 추가하는 것을 금지. 기존의 모든 프로퍼티를 재정의 할 수 없게 만듦

읽기만 가능해진 상태

단, 접근자 프로퍼티가 정의되어있다면 getter함수와 setter함수 모두 호출 가능.

Object.isFrozen();

 

Object.seal()을 사용해 봉인된 객체는 존재하는 속성을 변경할 수 있습니다. 

Object.freeze()로 동결된 객체에서는 존재하는 속성이 불변입니다.

728x90

'JavaScript' 카테고리의 다른 글

배열과 유사배열  (0) 2021.07.15
비동기 처리 - Promise  (0) 2020.07.19
커스텀 이벤트  (0) 2020.07.17
8.10 콜백함수  (0) 2020.07.16