JavaScript νλ‘ν νμ (prototype) μ΄ν΄
Object (κ°μ²΄)
μλ‘ μ°κ΄λ λ³μμ ν¨μλ₯Ό κ·Έλ£Ήνν΄μ μ΄λ¦μ λΆμΈ κ²
var memberObject = {
tami: 'name',
developer: 'java',
age:'25',
}
this
λ©μλκ° μμ μ΄ μν΄μλ κ°μ²΄λ₯Ό κ°λ¦¬ν€λ ν€μλ
κ°μ²΄κ° λ΄λΆμ μΌλ‘ κ°μ§κ³ μλ κ°μ μ°Έμ‘°ν μ μμ
var kim = {
name: 'kim',
first:10,
second:20,
sum: function(){
return this.first+this.second;
}
}
console.log(kim.sum()); //30
μμ μμμ κ°μ²΄λ μμμ μΌλ‘ λ§λ κ°μ²΄
κ°μ²΄λ₯Ό μ°μ΄λ΄λ λμμ λ°λ‘ ꡬν νμ¬ μ¬μ¬μ© κ°λ₯νκ² ν΄μΌν¨
Prototype
javascript λ prototype based languageβ¨
μμ±μ μμμ λ©μλλ₯Ό λ§λλκ²½μ° ( this.sum)
function Person(name, first, secod, third) {
this.name= name;
this.first = first;
this.secod = secod;
this.sum = function(){
return this.first + this.second;
}
}
var kim = new Person('kim',10,20);
console.log("kim.sun()",kim.sum());
this.sum = function(){
return this.first + this.second;
}
μμ±μκ° μμ±λ λλ§λ€ sumμ΄λΌλ ν¨μμ κ°μ²΄κ° κ³μ μλ‘ μμ±λκ³ μμ => λ©λͺ¨λ¦¬ λλΉ
μμ±μ Person μΌλ‘ λ§λ λͺ¨λ κ°μ²΄κ° 곡ν΅μ μΌλ‘ μ¬μ©νλ μμ±κ³Ό, ν¨μλ₯Ό λ§λ€μ΄μΌ ν¨
μμ±μλ₯Ό ν΅ν΄ λ§λ κ°μ²΄λ€μ΄ 곡ν΅μ μΌλ‘ μ¬μ©νλ μμ± λ§λ€κΈ°
Prototype μ¬μ©νλ κ²½μ°
function Person(name, first, second, third) {
this.name= name;
this.first = first;
this.second = second;
}
//Personμ΄λΌλ μμ±μ ν¨μμ λͺ¨λ κ°μ²΄μμ μ¬μ©ν λ©μλ μμ±
Person.prototype.sum = function(){
return this.first + this.second;
}
var kim = new Person('kim',10,20);
console.log("kim.sun()",kim.sum());
sumμ νλ²λ§ μ€ν
sumμ Personμμ λ§λ λͺ¨λ κ°μ²΄λ€μ΄ 곡μ ν¨ => λ©λͺ¨λ¦¬ μ μ½
function Person(name, first, second, third) {
this.name= name;
this.first = first;
this.second = second;
}
//Personμ΄λΌλ μμ±μ ν¨μμ λͺ¨λ κ°μ²΄μμ μ¬μ©ν λ©μλ μμ±
Person.prototype.sum = function(){
return 'prototype' + (this.first + this.second);
}
var kim = new Person('kim',10,20);
var lee = new Person('lee',10,10);
kim.sum = function(){
return 'this'+(this.first + this.second);
}
console.log("kim.sun()",kim.sum());
console.log("lee.sun()",lee.sum());
1) κ·Έ κ°μ²΄ μμ μ΄ sumμ΄λΌλ μμ±μ μ°Ύμ
: kim.sum
2) κ°μ²΄ μμ±μμΈ Prototypeμ sumμ΄λΌλ μμ±μ μ°Ύμ
: lee.sumμ λ°λ‘ μμΌλ -> prototype.sum μ
π§μκ°ν΄λ³Ό κ²
νλ‘ν νμ μ μλ―Έ:
ν¨μκ° μ μΈλ λ μλμΌλ‘ μ μΈλλ μμ±κ°μ²΄
κ·Έ μμ±μ ν¨μλ‘ λ§λ€μ΄μ§ λͺ¨λ κ°μ²΄λ κ·Έ ν¨μμ porotypeμ μ°Έμ‘°νλ€.
νλ‘ν νμ μ μ¬μ©νμ§ μκ³ μμ±μ μμμ λ©μλμ μμ±μ μ μνλ©΄ λ°μνλ λΉν¨μ¨ :
μμ±μκ° μμ±λ λλ§λ€ λ©μλλ₯Ό μλ‘ λ§λ€κΈ° λλ¬Έμ λ©λͺ¨λ¦¬ λλΉκ° μ¬ν΄μ§λ€.
νμ§λ§, νλ‘ν νμ μ λ§λ€λ©΄ μμ±μ ν¨μκ° λ§λ λͺ¨λ κ°μ²΄λ€μ΄
νλ‘ν νμ μ ν΅ν΄ λ§λ€μ΄μ§ λ©μλλ₯Ό 곡μ νλ©° μ¬μ¬μ©νκ³ λ©λͺ¨λ¦¬ ν¨μ¨μ΄ λμμ§λ€.