πŸ“–8μ£Όμ°¨ ν•™μŠ΅ λ²”μœ„

11μž₯ μ›μ‹œ κ°’κ³Ό 객체의 비ꡐ ( p.137 ~ p.153 )

πŸ“† μŠ€ν„°λ”” μ§„ν–‰ λ‚ μ§œ

2024 / 01 / 11(λͺ©) 05:00 PM


πŸ‘¨πŸ»β€πŸ’» μ£Όμš” λ‚΄μš© 정리

μ›μ‹œ κ°’κ³Ό 객체의 비ꡐ

μžλ°” 슀크립트의 데이터 νƒ€μž…μ—λŠ” μ›μ‹œ νƒ€μž…κ³Ό 객체 νƒ€μž…μ΄ μžˆλ‹€.

μ›μ‹œ νƒ€μž…μ˜ 값객체 νƒ€μž…μ˜ κ°’
λ³€κ²½ λΆˆκ°€λŠ₯ ν•œ κ°’λ³€κ²½ κ°€λŠ₯ν•œ κ°’
λ³€μˆ˜ ν• λ‹Ήμ‹œ μ‹€μ œ 값이 μ €μž₯λ³€μˆ˜ ν• λ‹Ήμ‹œ μ°Έμ‘° 값이 μ €μž₯
λ‹€λ₯Έ λ³€μˆ˜μ— ν• λ‹Ή μ‹œ μ›μ‹œ κ°’ 볡사,전달닀λ₯Έ λ³€μˆ˜μ— ν• λ‹Ήμ‹œ μ°Έμ‘° κ°’ 볡사,전달

μ›μ‹œ 값은 λ³€κ²½ λΆˆκ°€λŠ₯ν•œ 값이닀.(immutable value)

λ³€κ²½ λΆˆκ°€λŠ₯ν•˜λ‹€κ³  ν•΄μ„œ μž¬ν• λ‹Ήμ΄ μ•ˆλ˜λŠ” 것은 μ•„λ‹ˆλ‹€.

μ‰½κ²Œ μ„€λͺ…ν•˜λ©΄ 이미 쒅이에 적힌 κΈ€μžλ₯Ό λ³€κ²½ν•  방법은 μ—†λ‹€.

λ‹€λ§Œ, μƒˆλ‘œ 적으면 λ³€κ²½ν•  수 μžˆλŠ” 것이닀.

λ•Œλ¬Έμ— λ°μ΄ν„°μ˜ 신뒰성이 보μž₯λœλ‹€.

μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œλŠ” λ¬Έμžμ—΄μ„ μœ μ‚¬ λ°°μ—΄ 객체라고도 ν•œλ‹€.

λ³€μˆ˜μ— λ³€μˆ˜λ₯Ό ν• λ‹Ήν–ˆμ„ λ•Œ 무엇이 μ–΄λ–»κ²Œ μ „λ‹¬λ κΉŒ?

<script>
let score = 80;
let copy = score;

// score = 80, copy = 80

copy = 100;

// score = 80, copy = 100
</script>

이게 무슨 말이냐면 λ³€μˆ˜μ— λ³€μˆ˜λ₯Ό ν• λ‹Ή ν–ˆμ§€λ§Œ, 각자 λ‹€λ₯Έ λ©”λͺ¨λ¦¬ 곡간에 μžˆλ‹€λŠ” 것을 λœ»ν•œλ‹€.

객체

객체 값은 λ³€κ²½ κ°€λŠ₯ν•œ 값이닀.(mutable value)

그리고 μ•žμ„œ 참쑰값이라고 ν–ˆλ‹€.

<script>
let user = {
	name: 'park',
};
</script>

λ³€μˆ˜ user은 객체 {name: 'park'}을 μ°Έμ‘°ν•˜κ³  μžˆλ‹€.

λ§Œμ•½ μ € 값을 μˆ˜μ •ν•˜κ³  μ‹Άλ‹€λ©΄,

<script>
user.name = 'song';	// park => song
user.age = 27;	// age: 27 을 μΆ”κ°€
</script>

얕은 볡사 vs κΉŠμ€ 볡사

얕은 λ³΅μ‚¬λŠ” 객체의 ꡬ쑰적인 λ‹¨μ μœΌλ‘œ 인해 값이 κ³΅μœ λœλ‹€.

<script>
let user = {
	name: 'park',
};

let user2 = user;

console.log(user === user2);	// true

user2.name = 'song';
user2.age = 27;

// user = {name: 'song', age: 27}
// user2 = {name: 'song', age: 27}
</script>

Reference Kkan_-

profile
β˜„οΈ

0개의 λŒ“κΈ€