#
μΈμ¬μ΄λ μλ°μ€ν¬λ¦½νΈμ€λμ μΈμ¬μ΄λ μλ°μ€ν¬λ¦½νΈμ 6μ₯ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ 곡λΆνμλ€.
6.1 ν΄λμ€, μμ±μ, λ©μλκΉμ§λ κ·Έλμ λ μ΄ν΄κ° λμμΌλ, 6.2 μμ λΆλΆμμ μ λ§ μ€ν, μ λ μκ° λ΄λ΄ μ©μ© 맀면μ μ½μμ§λ§ λμ ν μ΄ν΄κ° λμ§ μμλ€.
λ΄κ° Javaλ Pythonμ κΉμν μ¬μ©ν΄λ³Έ κ²λ μλλ°, ν΄λμ€ κΈ°λ°μ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ μμ°μ€λ½κ² λ¬Όλ€μ΄ μμλ€. Javaμμ μ¬μ©νλ ν΄λμ€ κΈ°λ°μ μμμ΄ λ§€λλ½κ³ μμ°μ€λ½κ³ μ§κ΄μ μ΄λΌλ μκ°μ΄ λ€μκ³ , λ°λ©΄μ μλ°μ€ν¬λ¦½νΈμ νλ‘ν νμ μ μ΄μ©νμμ λ°©μμ μ½λκ° μλλΌ μΉμ ν μ€λͺ νλ κ·Έλ¦Όμ λ΄λ λ무 볡μ‘νκ³ μ΄ν΄νκΈ° μ΄λ €μ λ€. λκ° μ»€λ€λ μ₯λ²½μ λ§λ κΈ°λΆμ΄μλ€. (λλ μλ°μ€ν¬λ¦½νΈλ₯Ό νλ©΄ μλλ 건κ°..) μμ κ°μ΄ λ¨μ΄μ§κ³ μ΄λκ° λ¬Όμ΄λ³΄κ³ μΆμ μ¬λμ΄ μ μ€νλ€..
μΌλ¨ μ΄ν΄λμ§ μλ μ μ μ 리ν΄λ³Έλ€.
Object.create()
ν¨μ - π MDN web docs
μΈμ¬μ΄λ μλ°μ€ν¬λ¦½νΈ μ±
μ λ°λ₯΄λ©΄ ECMAScript 5μμ μ 곡νλ Object.create()
ν¨μμ λ΄λΆ ꡬνμ μ΄λ¬νλ€κ³ νλ€.
function create_object(o) { function F() {} F.prototype = o; return new F();}
μ΄ ν¨μλ₯Ό μ΄μ©ν΄μ μμμ ꡬνν΄λ³΄μ.
var Person = { name: 'zzoon', getName: function () { return this.name; }, setName: function (arg) { this.name = arg; },};
function create_object(o) { function F() {} F.prototype = o; return new F();}
var student = create_object(person);
student.setName('me');console.log(student.getName()); // me
μ΄ κ·Έλ¦ΌκΉμ§λ μ΄ν΄κ° λμλ€.
var Parent = (function () { function Parent(name) { this.name = name; }
Parent.prototype.sayHi = function () { console.log('Hi! ' + this.name); };
return Parent;})();
var child = Object.create(Parent.prototype);child.name = 'child';
child.sayHi(); // Hi! child
console.log(child instanceof Parent); // true
μμ μΆμ² : π μλ°μ€ν¬λ¦½νΈ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ° - Poiemaweb
μλ¬Έμ : μ μμ λ λΆλͺ¨κ° λλ Person
κ°μ²΄λ₯Ό μ§μ λ£μ λ°λ©΄, μ΄ μμ μμλ Parent.prototype
μ Object.create
μ μΈμλ‘ λ£μλκ°?
μ.. μλλ λΆλͺ¨λ‘ μΌμ μμ±μ ν¨μκ° μλ κ²½μ°μ, μλ λΆλͺ¨λ‘ μΌμ κ°μ²΄κ° μλκ²½μ°μ μ¬μ©ν μ μλ ν¨ν΄μΈ κ²μ΄μλ€..!
μ΄ν΄ μλλ μ λ€
extend()
ν¨μapply()
ν¨μ (λλ΅μ μ΄ν΄λ¨ ..;;)ν΄λμ€ κΈ°λ°μ μμμΈ κ²½μ° μ μμ ν΄λμ€μ
prototype
μ΄ λΆλͺ¨ ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό μ°Έμ‘°νλλ°, μ΄ κ΅¬μ‘°κ° μ μμ ν΄λμ€μprototype
μ λ©μλλ₯Ό μΆκ°ν λλ¬Έμ κ° λλκ°?
μΌλ¨ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ° λΆλΆμ λ΄μΌ νλ² λ 곡λΆν΄ λ΄μΌκ² λ€. κ·Έλ¦¬κ³ ν¨ν΄μ΄ λ€μνλ€λ³΄λ μ΄λ ν¨ν΄μ΄ μ’λ€λ κ±΄μ§ μ΄ν΄κ° μλκ² λ μν©μ΄ μ’ μ’ μλ€. μμ§ 1νλ λμν΄λ΄€κΈ° λλ¬Έμ, μμ§ λ€ μ΄ν΄νλ €λκ² λ¬΄λ¦¬μΈκ±° κ°κΈ°λ νλ€.