λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

Programming/Javascript

[ES6] Symbol νƒ€μž…

μ‹¬λ²Œ(Symbol)은 ES6μ—μ„œ 처음 선보인, μƒˆλ‘œμš΄ μ›μ‹œ κ°’ νƒ€μž…μ΄λ‹€. μ‹¬λ²Œμ€ 좩돌 μ—Όλ € 없이 객체 ν”„λ‘œνΌν‹°λ‘œ μ‚¬μš© κ°€λŠ₯ν•œ, νŠΉλ³„ν•œ '유일 κ°’'이닀.(μ ˆλŒ€μ μœΌλ‘œ μœ μΌν•¨μ΄ 보μž₯λ˜μ§€λŠ” μ•ŠλŠ”λ‹€.) 주둜 ES6의 νŠΉμˆ˜ν•œ λ‚΄μž₯ λ‘œμ§μ— μ“°κΈ° μœ„ν•΄ κ³ μ•ˆλ˜μ—ˆμ§€λ§Œ, μ‚¬μš©μžλ„ μ–Όλ§ˆλ“ μ§€ μ‹¬λ²Œμ„ μ •μ˜ν•  수 μžˆλ‹€.

 

ES6μ—λŠ” μ‹¬λ²Œ λͺ‡ κ°œκ°€ 미리 μ •μ˜λ˜μ–΄ μžˆλŠ”λ° Symbol.create, Symbol.iterator μ‹μœΌλ‘œ Symbol ν•¨μˆ˜ 객체의 정적 ν”„λ‘œνΌν‹°λ‘œ μ ‘κ·Όν•œλ‹€. μ‚¬μš©λ²•μ€ λ‹€μŒκ³Ό κ°™λ‹€.

 

μ‹¬λ²Œμ„ μ •μ˜ν•˜λ €λ©΄ Symbol() λ„€μ΄ν‹°λΈŒλ₯Ό μ‚¬μš©ν•œλ‹€. Symbol()은 μ•žμ— newλ₯Ό 뢙이면 μ—λŸ¬κ°€ λ‚˜λŠ”, μœ μΌν•œ λ„€μ΄ν‹°λΈŒ 'μƒμ„±μž'λ‹€.

 

 

μ‹¬λ²Œμ€ μ „μš©(private) ν”„λ‘œνΌν‹°λŠ” μ•„λ‹ˆμ§€λ§Œ(Object.getOwnPropertySymbols()둜 듀여닀보면 곡용(public) ν”„λ‘œνΌν‹°μž„μ„ μ•Œ 수 μžˆλ‹€), 본래의 μ‚¬μš© λͺ©μ μ— 맞게 λŒ€λΆ€λΆ„ μ „μš© ν˜Ήμ€ νŠΉλ³„ν•œ ν”„λ‘œνΌν‹°λ‘œ μ‚¬μš©ν•œλ‹€. 

 

* μ‹¬λ²Œμ€ 객체가 μ•„λ‹ˆλ‹€. λ‹¨μˆœν•œ 슀칼라 μ›μ‹œ 값이닀.

 

 

 

 

좜처

- You Don't Know JS: νƒ€μž…κ³Ό 문법, μŠ€μ½”ν”„μ™€ ν΄λ‘œμ €