> 웹 프론트엔드 > JS 튜토리얼 > js에서 불변 객체를 생성하는 방법

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

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

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으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿