October 28, 2020
๊ฐ์ฒด๋ฅผ ๋ง๋๋ ๊ณต์ฅ ์ผ๋ก์ ๋ค๋ฅธ ์ธ์ด๋ค์ Class ๋ผ๋ ๊ฒ์ ์ง์ํ๋ค๊ณ ํ๋ค.
ํ์ง๋ง Javascript ๋ ECMAscript6 ์ ์ถ๊ฐ๋ ๊ธฐ๋ฅ์ด๋ผ๊ณ ํ๋ค.
(4) ๊น์ง๋ ์ ํต ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐฉ์์ ์ฌ์ฉ, Constructor function ์ ํตํด ๊ฐ์ฒด๋ฅผ ์ฐ์ด๋ด๋ ๋ฐฉ๋ฒ์ ํ์ตํ๋ค.
์ด์ Class ๋ฌธ๋ฒ์ ์ ์ฉํด ๋ฐ๊ฟ ๋ณด์.
๋ค์ ํ๋ฒ Constructor ์ ์ญํ ์ ๋ ์ฌ๋ฆฌ๋ฉด
์ํ ์ปจ์คํธ๋ญํฐ๋ ๊ฐ์ฒด๋ฅผ ๋ง๋ค๋ฉด์ ๊ฐ์ฒด์ ๊ธฐ๋ณธ์ ๊ธฐ๋ฅ์ ์ธํ ํ๋๊ตฌ๋.
์์ฑ๋๋ ๊ฐ์ฒด๋ฅผ ์ด๊ธฐํ ํ๊ฒ ๊ตฌ๋.
class Person() {
sum () {
// ํด๋์ค ๋ด์์์ ํจ์์ ๋ชจ์ต์ ๋ง์น ์คํ์ ํ๋ ๊ฑฐ ๊ฐ์ ๋ณด์ด์ง๋ง,
} // ํด๋์ค ๋ด์์๋ ํจ์๋ฅผ ์ ์ธํด ๋๋ ํํ๋ก ๋ด์ผ ํ๋ค.
}
๊ฐ์ฒด๊ฐ ์์ฑ๋ ๋ ์๋์ผ๋ก ์์ฑ๋๊ธฐ ์ ์ ์คํ๋๋๋ก ์ฝ์๋์ด ์๋ ํจ์์ด๋ฉฐ ์ด๋ฅผ ํด๋์ค ๋ด์ ๊ตฌํํ๋ค.
class Person{
constructor(name, first, second){
this.name = name;
this.first = first;
this.second = second;
}
}
var kim = new Person('kim', 10, 20);
console.log("kim ์ ์ธ์คํด์ค ์
๋๋ค. ", kim)
kim ์ ์ธ์คํด์ค ์
๋๋ค. Person {name: "kim", first: 10, second: 20}
๋ฐฉ๋ฒ 1. prototype ๋ฉ์๋ ๊ณ ๋๋ก ๋ฃ๊ธฐ
class Person{
constructor(name, first, second){
this.name = name;
this.first = first;
this.second = second;
}
Person.prototype.sum = function() {
return 'prototype : ' + (this.first + this.second)
}
}
๋ฐฉ๋ฒ 2. sum() ์ ๊ทธ๋๋ก class ๋ด์ ๋ฃ๊ธฐ
class Person {
constructor(name, first, second) {
this.name = name
this.first = first
this.second = second
}
sum() {
// ํด๋์ค ๋ด ํจ์ sum() ๋ ์คํ์ด ์๋๋ผ ์ ์ธ์ด๋ค!
return 'sum()ํจ์ ์คํ! : ' + (this.first + this.second)
}
}
class ๋ด sum() ์ ํตํด ๊ฐ์ ํด๋์ค ์์ ์ํด ์๋ ๋ชจ๋ ๊ฐ์ฒด๊ฐ ๊ณต์ ํ๋ ํจ์๊ฐ ๋๋ค.
var kim = new Person('kim', 10, 20)
kim.sum = function() {
return 'this : ' + (this.first + this.second)
}
๊ฐ์ง๊ณ ์์ผ๋ฉด ๊ทธ๊ฒ์ ์คํํ๊ฒ ํ๋ค.
์ฆ ๊ฐ์ฒด ํ๋๋ง ๋ค๋ฅธ ๊ธฐ๋ฅ์ ํ๊ฒ ๋๋ ์ ์ด๋ค.