//자바스크립트 생성자
function Person(name, age , alive){
this.name = name;
this.age = age;
this.alive = alive;
}
//객체 생성
const person1 = new Person('aaa', 10, true);
const person2 = new Person('bbb', 20, false);
console.log(person1);
// Person {name: 'rocky', age: 3, alive: true}
매번 객체 생성마다 똑같은 함수나 프로퍼티를 생성할 필요 없이,
prototype 을 이용해서 공통적인 함수나 프로퍼티로 묶을 수 있다.
Person.prototype.callMyName~~ 이렇게 펑션을 공통적인 함수로 묶을 수 있다.
하지만 자바스크립트 ES6의 클래스를 이용하면
위와같이 복잡하게 할 필요없이 쉽게 생성자와 프로토타입으로 적용된 함수를 클래스로 묶어서 생성할 수 있다.
//ES6 버전에서 생김
//자바스크립트 생성자+공통함수 = 클래스파일로 만드는 법
class Person{
constructor(name, age , alive){
this.name = name;
this.age = age;
this.alive = alive;
}
//필요한 함수를 생성하면 프로토타입으로 생성된다.
callMyName (){
console.log("hi my name is "+this.name);
}
}