[JavaScript] 자바스크립트 객체 수정 제한하기
2022. 6. 3. 21:46ㆍProgram/JavaScript
067_자바스크립트 객체 수정 제한하기
[적용]
- 객체의 깊은 계층까지 수정을 제한하고 싶을 때
[문법]
메소드 | 의미 | 반환 |
Object.freeze(객체) | 객체의 수정을 제한 | 객체 |
Object.isFrozen(객체) | 객체의 수정 제한 확인 | 진리값 |
[내용]
객체는 const도 속성의 추가, 삭제, 변경이 가능하다.
const object1 = { id: 10, name: '사자' };
object1.id = 12; // 속성 변경 가능
object1.address = '서울'; // 속성 추가 가능
속성의 추가, 삭제, 변경의 제한은 Object.freeze()를 사용한다.
오류 검사 설정은 'use strict'*를 사용한다.
*ESS에서 추가된 기능으로 이전 버전에서는 무시했던 에러 부분의 관리를 도와주고 선언되지 않은 변수의 사용이나 변수의 삭제 등을 불가능하도록 만들어 안정적인 프로그래밍이 이루어지도록 한다. 반드시 스크립트의 시작 부분에 표기하자.
(https://www.w3schools.com/js/js_strict.asp)
'use strick';
const object2 = { id: 10, name: '사자' };
Object.freeze(object2);
object2.id = 12; // 속성을 변경할 수 없으므로 에러
object2.address = '서울'; // 속성을 추가할 수 없으므로 에러
배열의 수정도 제한이 가능하다.
'use strict';
const array1 = [1, 2, 3];
Object.freeze(array1);
array1.push(4); // 속성을 변경할 수 없으므로 에러
객체의 수정 제한 확인은 Object.isFrozen() 을 사용한다.
'use strict';
const object2 = { id: 10, name: '사자' };
Object.freeze(object2);
console.log(object.isFrozen(object2)); // 결과: true
[APPENDIX]
객체 수정을 제한하는 다른 방법
객체의 수정을 제한하는 다른 메소드는 Object.seal(), Object.preventExtexsions()가 있다.
- Object.seal(): 속성의 추가와 삭제 제한. 변경만 가능
- Object.preventExtensions(): 속성의 추가 제한, 삭제와 변경만 가능
참조 :
실무에 바로 적용하는 자바스크립트 코드레시피 278
아케다 야스노부, 카노 타케시 지음 / 이춘혁 옮김
'Program > JavaScript' 카테고리의 다른 글
[JavaScript] 자바스크립트 가변성(Mutable)과 불가변성(Immutable) 이해하기 (0) | 2022.06.06 |
---|---|
[JavaScript] 자바스크립트 데이터 타입 이해하기 (0) | 2022.06.05 |
[JavaScript] 자바스크립트 객체 요소 분할 대입(비구조화 할당)하기 (0) | 2022.06.03 |
[JavaScript] 자바스크립트 객체 요소 값 확인하기 (0) | 2022.06.03 |
[JavaScript] 자바스크립트 객체 속성(Property) 확인하기 (0) | 2022.06.02 |