JavaScript (3) μΈλ€μΌν 리μ€νΈν [Javascript] μλ°μ€ν¬λ¦½νΈ κ°μ²΄ - νλ ν΄λμ€, μΈλΌμΈμΊμ μλ°μ€ν¬λ¦½νΈμ κ°μ²΄λ λ€λ₯Έ μ μ νμ μΈμ΄μμ νν λ³Ό μ μλ ν΄λμ€λ ꡬ쑰체μ λ€λ₯΄κ² λ°νμ λμ μμ λ‘κ² μμ±, μμ , νμ₯λ μ μλ€. μλ₯Ό λ€μ΄ λ€μκ³Ό κ°μ μ½λμμ κ°μ²΄λ₯Ό μ μΈνκ³ λμ μΈμ λ μ§ νλ‘νΌν°λ₯Ό μΆκ°νκ±°λ μμ ν μ μλ€. const person = { name: "Jongbin", age: 29 };person.job = "Programmer"; κ°μ²΄ personμ μμ±νκ³ μ΄νμ jobμ΄λΌλ μλ‘μ΄ νλ‘νΌν°λ₯Ό μΆκ°νλ€. Javascriptμ μ΄λ° μ μ°μ± λλΆμ κ°λ°μλ μ΄λ€ μν©μμλ κ°μ²΄μ ꡬ쑰λ₯Ό μμ λ‘κ² λ³κ²½ν μ μλ€. λμ νμ΄ν(dynamic typing)κ³Ό λμ κ°μ²΄ ꡬ쑰(dynamic object structure)κ° κ²°ν©λ μ΄λ° νΉμ±μΌλ‘ νΈνκ² μ¬μ©ν μ μλ€. .. [Javascript] νλ‘ν νμ (Prototype) μ΅κ·Ό μ΄μ μ 곡λΆνλ λ΄μ©μ΄ μ κΈ°μ΅μ΄ λμ§ μμμ κΉ¨λ«κ³ μλ°μ€ν¬λ¦½νΈ κΈ°λ³Έ μ€μ κΈ°λ³Έ νλ‘ν νμ μ λν΄μ μ¬νμ΅νλ€. π§ νλ‘ν νμ μ΄λ? μλ°μ€ν¬λ¦½νΈλ νν μ¬μ©νλ ν΄λμ€κ°λ μ΄ ES6(2015)μ λμ μ΄ λμλ€. κ·Έλ λ€λ©΄ μ½λ μ¬μ¬μ©, μΊ‘μνλ₯Ό μ΄λ»κ² νμκΉ? μλ°μ€ν¬λ¦½νΈλ νλ‘ν νμ μ κΈ°λ°μΌλ‘ μμκ³Ό μΊ‘μνλ₯Ό μ§μν μ μλ€. μλ°μ€ν¬λ¦½νΈμ λͺ¨λ κ°μ²΄μλ ν΄λΉ μμ±μ ν¨μλ₯Ό μ¬μ©νμ¬ μμ±λ μΈμ€ν΄μ€μ μμ μν μ νλ κ°μ²΄μΈ νλ‘ν νμ μ΄ μ‘΄μ¬νλ€. λ°λΌμ λͺ¨λ κ°μ²΄λ [[Prototype]]μ΄λΌλ μΈν°λ μ¬λ‘―(internal slot)μ κ°μ§κ³ μλ€. [[Prototype]]μ κ°μ null λλ κ°μ²΄λ‘ νλ‘ν νμ 체μΈμ μ΄μ©ν΄ νλ‘ν νμ μ λ©μλλ₯Ό μ¬μ©ν μ μλ€. λΈλΌμ°μ μμ κ°μ²΄λ₯Ό μΆλ ₯ν΄λ³΄λ©΄ .. [JavaScript] μ€ν컨ν μ€νΈ μ€ν컨ν μ€νΈλ₯Ό 곡λΆνλ©΄μ μ€ν컨ν μ€νΈ, νκ²½λ μ½λ, λ μ컬νκ²½ λ±μ κ΄κ³κ° κ΅μ₯ν 볡μ‘νκ² μ½νμμμ μκ² λμλ€. κ·Έλ¬λ€ λ¬Έλ νΌλ³΄λμΉ μμ΄μ κ²½μ°μ μ€ν컨ν μ€νΈλ μ΄λ€μμΌλ‘ λμνλμ§κ° κΆκΈν΄μ‘λ€. μ°μ μ€ν컨ν μ€νΈλ₯Ό 곡λΆνλ©΄μ μκ² λ λ΄μ©λ€μ μ λ¦¬ν΄ λ³΄λ €κ³ νλ€. βοΈ μ€ν 컨ν μ€νΈ μλ°μ€ν¬λ¦½νΈμ λμμ리λ₯Ό λ΄λ ν΅μ¬ κ°λ μΌλ‘ κ°λ¨ν λ§ν΄μ μ½λμμ€ννκ²½μ΄λΌκ³ λ³Ό μ μλ€. μ€ν컨ν μ€νΈλ₯Ό μμ±νλ μ½λμλ λ€κ°μ§κ° μ‘΄μ¬νλ€. 1. μ μ μ½λ: μ μμ μ‘΄μ¬νλ μ½λ 2. ν¨μ μ½λ: ν¨μ λ΄λΆμ μ‘΄μ¬νλ μ½λ 3. eval μ½λ: eval ν¨μμ μΈμλ‘ μ λ¬λμ΄ μ€νλλ μ½λ 4. λͺ¨λ μ½λ: λͺ¨λ λ΄λΆμ μ‘΄μ¬νλ μ½λ κ°μ₯ λ¨Όμ μ€ν 컨ν μ€νΈ μ€ν μ μ μ μ€ν 컨ν μ€νΈ μμ±λκ³ , μ μ λ μ컬νκ²½.. μ΄μ 1 λ€μ