<:> 불변성 : 기능적 프로그래밍의 초석으로 객체 지향 프로그래밍에도 상당한 이점이 있습니다. 이 기사는 JavaScript의 불변성을 탐구하여 구현 및 이점을 자세히 설명합니다.
주요 개념 :
불변성 :
일단 생성되면 불변의 물체의 상태는 변하지 않습니다. 이것은 상태를 수정할 수있는 돌연변이 가능한 물체와 대조됩니다. JavaScript에서는 문자열과 숫자와 같은 프리미티브가 불변이지만 배열과 물체는 변하기가 어렵습니다.
불변의 데이터 구조 : 어레이 및 객체로 불변성을 달성하려면 원본을 변경하는 대신 수정시 새로운 인스턴스를 생성해야합니다. JavaScript에는 내장 지원이 부족하여 Mori 또는 Empable.js와 같은 라이브러리가 필요합니다.
성능 :
처음에는 메모리 집약적으로 나타나는 반면, 불변성은 종종 "구조 공유"를 통해 성능을 향상시킵니다. 또한 UI 프레임 워크에서 중요한 변경 추적을 단순화합니다
- 불변성 이해 :
돌연변이는 간단히 말해서 무언가가 변화 될 수 있음을 의미합니다. 프로그래밍에서 변이 가능한 객체는 상태를 변경할 수 있습니다. 불변성은 반대입니다. 불변의 가치는 창조 후에도 일정하게 유지됩니다. 많은 공통 가치는 불변입니다. 예를 들면 :
는 새로운 문자열입니다. 는 변경되지 않았습니다. 문자열 방법은 새로운 문자열을 만듭니다. 그들은 원본을 수정하지 않습니다. 현이 불변하기 때문입니다. 숫자는이 특성을 공유합니다
JavaScript에서의 돌연변이 : -
JavaScript의 내장 문자열 및 숫자는 불변입니다. 그러나 어레이는 변동성이 있습니다 :
- an 는 다르게 행동 할 것입니다 :
마찬가지로, 속성이 "set"인 경우 (개체 교체)가 새 개체를 반환합니다.
실제로 불변성 (Emutable.js 사용) :
JavaScript에는 기본 불변의 구조가 없기 때문에 Empable.js와 같은 라이브러리를 사용합니다. Minesweeper 게임 예제를 고려해 봅시다. 이 보드는 불변의지도로, 는 불변의 불변지도 목록 (각 타일)입니다. 초기화는 's 함수를 사용합니다
게임 논리 함수는 불변의 구조를 취하여 새로운 인스턴스를 반환합니다. 공개 된대로 타일을 플래그합니다. 변이 가능한 데이터 :
불변의 데이터를 사용하면
: 를 사용합니다
<code class="language-javascript">const statement = "I am an immutable value";
const otherStr = statement.slice(8, 17); </code>
새로운 불변의 사례를 반환합니다. 견고성을 위해 otherStr
를 사용하여 타일 존재를 확인할 수 있습니다.
statement
성능 고려 사항 :
위 내용은 자바 스크립트의 불변성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!