Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 카카오맵
- css #html
- Next
- spread operation
- Redux
- es11
- es6
- JavaScript
- Python #CodeUp
- react
- React Kakao map
- Python
- 카카오맵 api
- HTML
- BOJ
- Hooks
- CSS
- Nullish Coalescing Operator
- firebase
- Template literals
- nextjs
- Python #Baekjoon
- optional chanining
- 프로그래머스
- HTML #CSS
- React #Hooks
- Default parameter
Archives
- Today
- Total
거북이개발자
[JavaScript] Immutability(객체 불변만들기) 본문
1. freeze
(1). 변경 가능
var o1 = {name:'kim', score:[1,2]}
//many code
o1.name = 'lee';
객체의 경우도 많은 코드들이 추가되면 객체 내용물이 변형이 생길 수 있다.
(2). freeze
var o1 = {name:'kim', score:[1,2]}
Object.freeze(o1);
//many code
o1.name = 'lee';
객체의 내용을 변경하기 싫을 시 freeze을 이용해준다.
이렇게 변경하려고 시도하면 에러가 나오는 걸 볼 수 있다.
위 사진처럼 변경이 없는 것을 볼 수 있다.
(2). 중첩 객체 freeze
var o1 = {name:'kim', score:[1,2]}
Object.freeze(o1);
Object.freeze(o1.score);
//many code
o1.name = 'lee';
중첩이 있을 시 따로 중첩된 객체에도 freeze를 적용해야 변경을 막을 수 있다.
2. freeze vs const
const o1 = {name:'kim'}
Object.freeze(o1);
const o2 = {name:'lee'}
// o1 = o2;
o1.name = 'park';
console.log(o1);
-freeze : 객체안의 내용 변경을 막을 수 있다. 단 o1=o2와 같은 객체 변경을 막을 수는 없다.
-const : 객체의 변경을 막을 수 있다. o1=o2와 같은 변경을 막을 수 있다.
'Web > JavaScript' 카테고리의 다른 글
[JavaScript] Immutability(내용에 대한 불변함) (0) | 2021.02.19 |
---|---|
[JavaScript] Immutability(이름에 대한 불변함) (0) | 2021.02.19 |
Comments