function Rectangle(row,column){
this.row = row;
this.column = column;
this.getArea =function(){
return this.row * this.column; //row*column도 여기서는 가능
}
}
let r = new Rectangle(9,200);
function Rectangle1(row,column){
this.row = row;
this.column = column;
}
Rectangle1.prototype.getArea = function(){
return this.row*this.column
}
let r1 = new Rectangle1(10,200);
const Rectangle2 = class{
constructor(row,column){
this.row = row;
this.column = column;
};
getArea(){
return this.row*this.column
}
}
let r2 = new Rectangle2(11,200);
console.log(r.getArea()) //1800
console.log(r); //Rectangle {row: 9, column: 200, getArea: ƒ}
console.log(r1.getArea()) //2000
console.log(r1); //Rectangle1 {row: 10, column: 200}
console.log(r2.getArea()) //2200
console.log(r2); //Rectangle2 {row: 11, column: 200}
생성자 함수2와 클래스와 비슷한 결과와 클래스와 비슷한 결과가 나타난다.
생성자 함수1 같은 경우 기존에 생성자함수에서 존재하는 메서드를 객체가 생성될때 가지고 왔고 생성자 함수2와 클래스는 자신의 prototype에 존재하는 메서드를 사용한다.