자바스크립트의 프로토타입

June Lee·2021년 3월 10일

JavaScript

목록 보기
4/11

프로토타입

생성자 함수를 이용해서 객체를 생성하면, 객체를 반복해서 생성할 때의 효율을 높일 수 있지만, 어쨌든 메모리가 그때마다 새롭게 할당되기 때문에, 메모리 면에서는 효율적이지 않다.

이런 문제를 해결하기 위해서 자바스크립트에서는 프로토타입이라는 특별한 프로퍼티를 이용한다.
프로토타입 공간 안에 메소드를 추가해주면, 이 메소드들은 객체를 생성할 때마다 새롭게 메모리가 할당되는 것이 아니라, 모든 객체가 해당 공간을 공유할 수 있다.

function Student(name, kor, eng) {
	this.name = name;
  	this.kor = kor;
 	this.eng = eng;
}

// 한번에 정의
Student.prototype = {
  getSum: function(){
    return this.kor + this.eng;
  },
  getAverage: function(){
  	return this.getSum()/3;
  }
}
// 하나씩 정의(앞에 정의된 prototype에 추가)
Student.prototype.changeName = function(name) {
	this.name = name;	
}
profile
📝 dev wiki

0개의 댓글