Object.freeze()
๊ฐ์ฒด์ ์๋ก์ด ์์ฑ์ ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํ ์ ์๋ ์ํ๋ก ๋ฐ๊พธ์ด immutableํ Object๋ฅผ ๋ง๋ค ์ ์๋ค.
- ํ๋กํ ํ์ ๊ฐ์ฒด๋ฅผ ๋๊ฒฐํ๋ ํจ์
- ๋๊ฒฐ๋ ๊ฐ์ฒด๋ ์์ฑ์ ์ถ๊ฐ, ์ญ์ ํ๋ ๋ฑ ๋ณ๊ฒฝ ๋ถ๊ฐ
- ๊ฐ์ฒด๋ฅผ ๋ณ๊ฒฝํ๋ ค๋ ์๋ ์ TypeError ์์ธ ๋ฐ์
- ๊ฐ์ฒด์ ๋ถ๋ณ์ฑ ์ ์ง
- ์์ ๋ณต์ฌ(1 depth๊น์ง๋ง)๋ฅผ ํ๋ฏ๋ก ์ค์ฒฉ๋ ๊ฐ์ฒด๋ ๋๊ฒฐ๋์ง ์์
- Object.isFrozen() ๋ฉ์๋๋ก ๊ฐ์ฒด ๋๊ฒฐ ์ฌ๋ถ ํ์ธ ๊ฐ๋ฅ
const info = {
name: 'Anna',
age: 19
};
Object.freeze(info);
info.age = 20; // ๋ณ๊ฒฝ๋์ง ์์
info.email = 'hello@gmail.com'; // ์ถ๊ฐ๋์ง ์์
const vs. Object.freeze()
const ํค์๋: ์ฌํ ๋น X, ์์ฑ๋ณ๊ฒฝ O
const info = {
name: 'Anna',
age: 19
};
info.age = 20;
info.email = 'hello@gmail.com';
Object.seal()
๊ฐ์ฒด์ ์๋ก์ด ์์ฑ์ ์ถ๊ฐํ๊ฑฐ๋ ๊ธฐ์กด ์์ฑ์ ๋ณ๊ฒฝ ๋๋ ์ญ์ ํ ์ ์๋ ์ํ๋ก ๋ฐ๊พธ๋๋ฐ, ์ฐ๊ธฐ ๊ฐ๋ฅํ ์์ฑ์ ๋ณ๊ฒฝ ๊ฐ๋ฅํ๋ค.
- ๊ฐ์ฒด์ ํ์ฅ์ ๊ธ์ง์ํค๋ ํจ์
- ์์ฑ ์ถ๊ฐ, ์ญ์ , ๋ณ๊ฒฝ์ ๋ถ๊ฐ๋ฅํ์ง๋ง ๊ฐ ์ค์ ์ ๊ฐ๋ฅ
- Object.isSealed() ๋ฉ์๋๋ก ๊ฐ์ฒด ๋ฐ๋ด ์ฌ๋ถ ํ์ธ ๊ฐ๋ฅ
'๊ฐ๋ฐ > Javascript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
javascript ๋ฐฐ์ด ๋ด ์ค๋ณต ๊ฐ ๊ตฌํ๊ธฐ (0) | 2022.06.23 |
---|---|
javascript byte ์ ๊ณ์ฐ (0) | 2022.06.21 |
ES6 Syntax (0) | 2022.05.03 |
TypeScript (0) | 2022.04.28 |
์๋ฐ์คํฌ๋ฆฝํธ ๋น๋๊ธฐ ์ฒ๋ฆฌ / Promise / async / await / fetch (0) | 2022.04.20 |
๋๊ธ