js에서 불변 객체를 생성하는 방법

王林
풀어 주다: 2020-05-19 09:16:03
앞으로
2671명이 탐색했습니다.

js에서 불변 객체를 생성하는 방법

객체의 불변성은 객체가 생성된 후 어떤 방식으로든 변경되는 것을 원하지 않는다는 의미입니다(읽기 전용 유형으로 설정).

자동차 개체를 정의하고 프로젝트 전반에 걸쳐 해당 속성을 사용하여 작업을 수행해야 한다고 가정해 보겠습니다. 우리는 어떤 데이터도 잘못 수정되는 것을 허용할 수 없습니다.

const myTesla = { maxSpeed: 155, batteryLife: 300, weight: 2300 };
로그인 후 복사

Object.preventExtensions() 확장 방지

이 메서드는 기존 객체에 새 속성을 추가하는 것을 방지하고, PreventExtensions()는 되돌릴 수 없는 작업이므로 객체에 추가 속성을 다시 추가할 수 없습니다.

Object.isExtensible(myTesla); // true Object.preventExtensions(myTesla); Object.isExtensible(myTesla); // false myTesla.color = 'blue'; console.log(myTesla.color) // undefined
로그인 후 복사

Object.seal() 봉인

속성이 추가되거나 제거되는 것을 방지할 수 있으며, seal()은 속성 설명자의 수정도 방지할 수 있습니다.

Object.isSealed(myTesla); // false Object.seal(myTesla); Object.isSealed(myTesla); // true myTesla.color = 'blue'; console.log(myTesla.color); // undefined delete myTesla.batteryLife; // false console.log(myTesla.batteryLife); // 300 Object.defineProperty(myTesla, 'batteryLife'); // TypeError: Cannot redefine property: batteryLife
로그인 후 복사

Object.freeze()는 동결됩니다

Object.seal()과 동일한 작업을 수행하며 속성을 쓸 수 없게 만듭니다.

Object.isFrozen(myTesla); // false Object.freeze(myTesla); Object.isFrozen(myTesla); // true myTesla.color = 'blue'; console.log(myTesla.color); // undefined delete myTesla.batteryLife; console.log(myTesla.batteryLife); // 300 Object.defineProperty(myTesla, 'batteryLife'); // TypeError: Cannot redefine property: batteryLife myTesla.batteryLife = 400; console.log(myTesla.batteryLife); // 300
로그인 후 복사

참고: 불변 객체를 수정하려고 할 때 오류가 발생하도록 하려면 엄격 모드를 사용하세요.

추천 튜토리얼:js 입문 튜토리얼

위 내용은 js에서 불변 객체를 생성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:jb51.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!