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

10μž₯ 객체 λ¦¬ν„°λŸ΄ ( p.124 ~ p.136 )

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

2024 / 01 / 06(ν† ) 10:00 AM


🎯 객체 λ¦¬ν„°λŸ΄

πŸ“Œ κ°μ²΄λž€?

μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” 객체 기반의 ν”„λ‘œκ·Έλž˜λ° 언어이며, μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό κ΅¬μ„±ν•˜λŠ” 거의 "λͺ¨λ“  것"이 객체닀.
μ›μ‹œ 값을 μ œμ™Έν•œ λ‚˜λ¨Έμ§€ κ°’(ν•¨μˆ˜, λ°°μ—΄, μ •κ·œ ν‘œν˜„μ‹ λ“±)은 λͺ¨λ‘ 객체닀.
κ°μ²΄λŠ” 0개 μ΄μƒμ˜ ν”„λ‘œνΌν‹°λ‘œ κ΅¬μ„±λœ 집합이며,ν”„λ‘œνΌν‹°λŠ” 킀와 κ°’μœΌλ‘œ κ΅¬μ„±λœλ‹€.
ν”„λ‘œνΌν‹° 값이 ν•¨μˆ˜μΌ 경우 일반 ν•¨μˆ˜μ™€ κ΅¬λΆ„ν•˜κΈ° μœ„ν•΄ λ©”μ„œλ“œλΌ λΆ€λ₯Έλ‹€.

πŸ“Œ λ¦¬ν„°λŸ΄μ΄λž€?

μ‚¬λžŒμ΄ 이해할 수 μžˆλŠ” 문자 λ˜λŠ” μ•½μ†λœ 기호λ₯Ό μ‚¬μš©ν•˜μ—¬ 값을 μƒμ„±ν•˜λŠ” ν‘œκΈ°λ²•μ„ λ§ν•œλ‹€.

즉, 객체 λ¦¬ν„°λŸ΄μ€ μ‚¬λžŒμ΄ 이해할 수 μžˆλŠ” 객체λ₯Ό μƒμ„±ν•˜κΈ° μœ„ν•œ ν‘œκΈ°λ²•μ΄λ‹€.

객체 λ¦¬ν„°λŸ΄μ€ ({...}) 내에 0개 μ΄μƒμ˜ ν”„λ‘œνΌν‹°λ₯Ό μ •μ˜ν•œλ‹€.λ³€μˆ˜μ— ν• λ‹Ήλ˜λŠ” μ‹œμ μ— μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진은 객체 λ¦¬ν„°λŸ΄μ„ 해석해 객체λ₯Ό μƒμ„±ν•œλ‹€.

  • ν”„λ‘œνΌν‹° : 객체의 μƒνƒœλ₯Ό λ‚˜νƒ€λ‚΄λŠ” κ°’(data)
  • λ©”μ„œλ“œ : ν”„λ‘œνΌν‹°(μƒνƒœ 데이터)λ₯Ό μ°Έμ‘°ν•˜κ³  μ‘°μž‘ν•  수 μžˆλŠ” λ™μž‘(behavior)

🎯 객체 λ¦¬ν„°λŸ΄μ˜ ν™•μž₯ κΈ°λŠ₯

ES6μ—μ„œλŠ” λ”μš± κ°„νŽΈν•˜κ³  ν‘œν˜„λ ₯ μžˆλŠ” 객체 λ¦¬ν„°λŸ΄μ˜ ν™•μž₯ κΈ°λŠ₯을 μ œκ³΅ν•œλ‹€.

πŸ“Œ ES5 ν‘œν˜„μ‹

<script>
//ES5κΉŒμ§€ 객체 λ¦¬ν„°λŸ΄ κΈ°μ‘΄ ν‘œν˜„μ‹
var x = 1, y = 2;

var object = {
	x: x,
    y: y
};

console.log(object); // {x: 1, y: 2}

// λ©”μ„œλ“œ 
var object = {
	name: 'kim',
    sayHi: function(){
    console.log('Hi' + this.name);
    }
};

obj.sayHi(); // Hi! kim
</script>

πŸ“Œ ES6 μΆ•μ•½ ν‘œν˜„μ‹

<script>
/* ES6 μ—μ„œλŠ” ν”„λ‘œνΌν‹° κ°’μœΌλ‘œ λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜λŠ” 경우 
λ³€μˆ˜ 이름과 ν”„λ‘œνΌν‹° ν‚€κ°€ λ™μΌν•œ 이름일 λ•Œ ν”„λ‘œνΌν‹° ν‚€λ₯Ό μƒλž΅ν•  수 μžˆλ‹€. 
μ΄λ•Œ ν”„λ‘œνΌν‹° ν‚€λŠ” λ³€μˆ˜ μ΄λ¦„μœΌλ‘œ μžλ™ 생성 λœλ‹€.*/

let x = 1, y = 2;

const object = { x,y };

console.log(object); // {x: 1, y: 2}

// λ©”μ„œλ“œ μΆ•μ•½ ν‘œν˜„

const object = {
	name: 'kim',
    sayHi(){
    console.log('Hi!' + this.name);
    }
};

object.sayHi();//Hi! kim
</script>
profile
β˜„οΈ

0개의 λŒ“κΈ€