ν‹°μŠ€ν† λ¦¬ λ·°

728x90

ν•¨μˆ˜μ˜ λΆˆλ³€μ„±μ΄λž€?

ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œ μ™ΈλΆ€λ‘œλΆ€ν„° 주어진 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' }
728x90

'🟨 JavaScript > ν•¨μˆ˜' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[JavaScript] ν•¨μˆ˜μ˜ 인자(parameters)에 λŒ€ν•˜μ—¬  (0) 2022.12.20
곡지사항
μ΅œκ·Όμ— 올라온 κΈ€
μ΅œκ·Όμ— 달린 λŒ“κΈ€
Total
Today
Yesterday
Β«   2025/01   Β»
일 μ›” ν™” 수 λͺ© 금 ν† 
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
κΈ€ 보관함
250x250