Skip to content

Latest commit

Β 

History

History
52 lines (30 loc) Β· 2.42 KB

File metadata and controls

52 lines (30 loc) Β· 2.42 KB

ν•¨μˆ˜μ™€ 일급 객체

일급 객체

  1. 무λͺ…μ˜ λ¦¬ν„°λŸ΄λ‘œ 생성할 수 μžˆλ‹€. 즉, λŸ°νƒ€μž„μ— 생성이 κ°€λŠ₯ν•˜λ‹€.
  2. λ³€μˆ˜λ‚˜ 자료ꡬ쑰(객체, λ°°μ—΄ λ“±)에 μ €μž₯ν•  수 μžˆλ‹€.
  3. ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜μ— 전달할 수 μžˆλ‹€.
  4. ν•¨μˆ˜μ˜ λ°˜ν™˜κ°’μœΌλ‘œ μ‚¬μš©ν•  수 μžˆλ‹€.

ν•¨μˆ˜λŠ” 일급 κ°μ²΄λ‘œμ„œ 객체와 λ™μΌν•˜κ²Œ μ‚¬μš©ν•  수 μžˆλ‹€.

일반 κ°μ²΄λŠ” ν˜ΈμΆœν•  수 μ—†μ§€λ§Œ ν•¨μˆ˜ κ°μ²΄λŠ” ν˜ΈμΆœν•  수 μžˆλ‹€λŠ” 차이점이 μžˆλ‹€.
λ˜ν•œ, 일반 κ°μ²΄μ—λŠ” μ—†λŠ” ν•¨μˆ˜ 고유의 ν”„λ‘œνΌν‹°λ₯Ό μ†Œμœ ν•œλ‹€.

ν•¨μˆ˜ 객체의 ν”„λ‘œνΌν‹°

arguments, caller, length, name, prototype ν”„λ‘œνΌν‹°λŠ” 일반 κ°μ²΄μ—λŠ” μ—†λŠ” ν•¨μˆ˜ 객체 고유의 데이터 ν”„λ‘œνΌν‹°λ‹€.

arguments ν”„λ‘œνΌν‹°

arguments κ°μ²΄λŠ” ν•¨μˆ˜ 호좜 μ‹œ μ „λ‹¬λœ μΈμˆ˜λ“€μ„ ν”„λ‘œνΌν‹° κ°’μœΌλ‘œ μ†Œμœ ν•˜λŠ” 순회 κ°€λŠ₯ν•œ μœ μ‚¬ λ°°μ—΄ 객체이며, ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œ μ§€μ—­ λ³€μˆ˜μ²˜λŸΌ μ‚¬μš©λœλ‹€.
ν”„λ‘œνΌν‹° ν‚€λŠ” 인수의 μˆœμ„œλ₯Ό 가리킨닀.

arguments 객체의 callee ν”„λ‘œνΌν‹°λŠ” ν˜ΈμΆœλ˜μ–΄ gargument 객체λ₯Ό μƒμ„±ν•œ ν•¨μˆ˜ μžμ‹ μ„ 가리킀고 arguments 객체의 length ν”„λ‘œνΌν‹°λŠ” 인수의 개수λ₯Ό 가리킨닀.

arguments κ°μ²΄λŠ” λ§€κ°œλ³€μˆ˜ 개수λ₯Ό ν™•μ •ν•  수 μ—†λŠ” κ°€λ³€ 인자 ν•¨μˆ˜λ₯Ό κ΅¬ν˜„ν•  λ•Œ μœ μš©ν•˜λ‹€.

caller ν”„λ‘œνΌν‹°

ν•¨μˆ˜ μžμ‹ μ„ ν˜ΈμΆœν•œ ν•¨μˆ˜λ₯Ό 가리킨닀.

length ν”„λ‘œνΌν‹°

ν•¨μˆ˜λ₯Ό μ •μ˜ν•  λ•Œ μ„ μ–Έν•œ λ§€κ°œλ³€μˆ˜μ˜ 개수λ₯Ό 가리킨닀.

name ν”„λ‘œνΌν‹°

ν•¨μˆ˜μ˜ 이름을 λ‚˜νƒ€λ‚Έλ‹€.
ES5μ—μ„œλŠ” 빈 λ¬Έμžμ—΄μ„ κ°’μœΌλ‘œ κ°–μ§€λ§Œ ES6μ—μ„œλŠ” ν•¨μˆ˜ 객체λ₯Ό κ°€λ¦¬ν‚€λŠ” μ‹λ³„μžλ₯Ό κ°’μœΌλ‘œ κ°–λŠ”λ‹€.

__proto__ μ ‘κ·Όμž ν”„λ‘œνΌν‹°

λͺ¨λ“  κ°μ²΄λŠ” [[Prototype]]μ΄λΌλŠ” λ‚΄λΆ€ μŠ¬λ‘―μ„ κ°€μ§€λ©° 이 μŠ¬λ‘―μ€ 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ˜ 상속을 κ΅¬ν˜„ν•˜λŠ” ν”„λ‘œν† νƒ€μž… 객체λ₯Ό 가리킨닀.

proto ν”„λ‘œνΌν‹°λŠ” [[Prototype]] λ‚΄λΆ€ 슬둯이 κ°€λ¦¬ν‚€λŠ” ν”„λ‘œν† νƒ€μž… 객체에 μ ‘κ·Όν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” μ ‘κ·Όμž ν”„λ‘œνΌν‹°λ‹€.
직접 접근은 λΆˆκ°€ν•˜κ³  κ°„μ ‘μ μœΌλ‘œλ§Œ μ ‘κ·Ό κ°€λŠ₯ν•˜λ‹€.

prototype ν”„λ‘œνΌν‹°

μƒμ„±μž ν•¨μˆ˜λ‘œ ν˜ΈμΆœν•  수 μžˆλŠ” ν•¨μˆ˜ 객체 constructor만이 μ†Œμœ ν•˜λŠ” ν”„λ‘œνΌν‹°λ‹€.

prototype ν”„λ‘œνΌν‹°λŠ” ν•¨μˆ˜κ°€ 객체λ₯Ό μƒμ„±ν•˜λŠ” μƒμ„±μž ν•¨μˆ˜λ‘œ 호좜될 λ•Œ μƒμ„±μž ν•¨μˆ˜κ°€ 생성할 μΈμŠ€ν„΄μŠ€μ˜ ν”„λ‘œν† νƒ€μž… 객체λ₯Ό 가리킨닀.