ν°μ€ν 리 λ·°
[JavaScript] ν¨μμ λΆλ³μ±(Immutability) μ΄λ?
10000COW 2022. 12. 20. 22:10ν¨μμ λΆλ³μ±μ΄λ?
ν¨μ λ΄λΆμμ μΈλΆλ‘λΆν° μ£Όμ΄μ§ parameterμ κ° λλ μνλ₯Ό λ³κ²½νμ§ μμμΌ ν¨μ λ»νλ€.
κ° λλ μν λ³κ²½μ΄ νμν κ²½μ°μλ μλ‘μ΄ κ° λλ κ°μ²΄(Object)λ₯Ό λ§λ€μ΄μ λ°νν΄μΌ νλ€.
Primitive Type λ°μ΄ν°
primitive λ°μ΄ν°μ κ²½μ° κ°μ 볡μ¬(pass by value)νκΈ° λλ¬Έμ, ν¨μμ λ§€κ° λ³μλ‘ μ λ¬λ λ°μ΄ν°λ₯Ό λ³κ²½νλλΌλ, μλ λ³μλ λ°λμ§ μλλ€.
κ·ΈλΌμλ, λ€λ₯Έ κ°λ°μλ μ¬μ©μλ€μ΄ ν¨μλ₯Ό μ¬μ©ν¨μ μμ΄ ν¨μ λ΄λΆμμ μλμ κ°μ λ°κΎΈλ κ²μ μ’μ§ μκΈ° λλ¬Έμ
μλ‘μ΄ λ³μλ₯Ό μμ±ν΄μ, νλΌλ―Έν°λ‘ μ λ¬λ κ°μ ν λΉν μ΄νμ λ³κ²½νλ κ²μ΄ λ°λμ§νλ€.
μλ₯Όλ€μ΄, const count = val, count = 6;
μ΄λ°μμΌλ‘ countλΌλ μλ‘μ΄ λ³μλ₯Ό ν¨μ μμμ μ¬μ©ν μ μλλ‘ λ§λ€μ΄ λκ³ , μ΄ λ³μλ₯Ό κ°μ§κ³ λ³κ²½νκ±°λ νμ©νλ κ²μ΄ μ’λ€.
function countUp(val){
val = 6;
console.log(val); // 6
}
const start = 1;
countUp(start);
console.log(start) // 1
Object Type λ°μ΄ν°
λ°λ©΄, object λ°μ΄ν°μ κ²½μ°μλ ν¨μμ λ§€κ° λ³μλ‘ μ λ¬λμμ λ,
ν¨μ λ΄λΆμμ λ§€κ° λ³μλ‘ μ λ¬λ object λ°μ΄ν°μ μνλ₯Ό λ³κ²½νλ€λ©΄
μ΄ λ§€κ° λ³μλ κ²°κ΅ μ€μ κ°μ²΄μ μ£Όμλ₯Ό κ°λ¦¬ν€κ³ μμΌλ―λ‘(pass by reference), μ€μ κ°μ²΄μ μνκ° λ³κ²½λ¨μ μ£Όμν΄μΌ νλ€.
(μλ μ½λμμ μ€μ κ°μ²΄ VIPμ nameμ΄ SONμμ KaneμΌλ‘ λ³κ²½λμλ€.)
λ°λΌμ 맀κ°λ³μλ‘ λ°λ κ²½μ°, μνλ₯Ό λ³κ²½ν νμκ° μμ κ²½μ°μλ changeVIP ν¨μ λ΄μ μλ‘μ΄ Objectλ₯Ό λ§λ€μ΄μ λ³κ²½νκ±°λ λ°νν΄μΌ νλ€.
function changeVIP(vip){
vip.name = 'Kane'
console.log(vip); // { name: 'Kane', club: 'Tottenham' }
}
const VIP = {
name: 'SON',
club: 'Tottenham'
}
changeVIP(VIP);
console.log(VIP); // // { name: 'Kane', club: 'Tottenham' }
'π¨ JavaScript > ν¨μ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JavaScript] ν¨μμ μΈμ(parameters)μ λνμ¬ (0) | 2022.12.20 |
---|
- Total
- Today
- Yesterday
- μ λ ¬
- DB
- JavaScript
- μλ£κ΅¬μ‘°
- Context API
- useState
- react
- Browser
- κ·Έλν
- μλ°μ€ν¬λ¦½νΈ
- mdn
- error
- github
- ν¨μ
- μλ¬
- Python
- CSS
- 리μ‘νΈ
- React Query
- μκ³ λ¦¬μ¦
- git
- νμ΄μ¬
- state
- zustand
- Component
- BOJ
- leetcode
- λ°μ΄ν°λ² μ΄μ€
- λΈλΌμ°μ
- DOM
μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
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 |