독서하는 개발자's Blog

반응형

우리는 생성자 함수를 생성할 때,

function Fn(name, age, area, ){
	
    //속성
	this.name = name;
    this.age = age;
    this.area = area;
	
    //메소드
    this.getSum = function(){
    	return ~~~;
    }
    
}

 이런식으로 속성과 메소드를 한 생성자 함수 안에다가 선언을 하고 사용을 하는데

이는 메모리를 쓸데없이 잡아먹는 아주 안좋은 방법이다.

 

기본적으로 속성을 추가하고 실행할 때마다 우리는 공통기능을 가지고 있는 메소드도 같이 생성이 되는데,

이게 쌓이고 쌓이다보면 메모리를 잡아먹게 된다.

 

그렇기 때문에 우리가 사용해야할 방법은 바로 "prototype" 이다.

 

prototype은 생성자 함수로 생성된 객체가 공통으로 가지는 공간으로

메소드를 하나만 생성해도 모든 객체가 해당 메서드를 사용할 수 있다.

 

* 생성자 함수로 객체를 만들 때, 생성자 함수 내부에 속성만 넣는다.

 

우리가 사용할 때에는

속성과 메서드를 분리하여 사용하면 되는데,

function Fn(name, age, area ){
	
    //속성
	this.name = name;
    this.age = age;
    this.area = area;
    
}

//메소드
Fn.prototype.getSum = function(){
	
};

이렇게 분리해서 사용하면 메모리 낭비를 줄일 수가 있다.

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band