생성자함수 vs 클래스

KHW·2021년 3월 16일
0

Javascript 지식쌓기

목록 보기
28/95
post-custom-banner

생성자 함수1 (메서드 포함)

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);

생성자 함수2 (prototype에 메서드 추가)

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에 존재하는 메서드를 사용한다.

profile
나의 하루를 가능한 기억하고 즐기고 후회하지말자
post-custom-banner

0개의 댓글