생성자 함수

2015. 1. 20. 16:30[개발] 지식/JavaScript

  • 생성자, 프로토타입
<script>

//다음과 같이 생성자를 정의한다.
// this 키워드로 속성값들을 정의함.
function Student(name, korean, math, english, science){
this.이름 = name;
this.국어 = korean;
this.수학 = math;
this.영어 = english;
this.과학 = science;

// 프로토타입은 상속메서드라고 보면됨.(한번만 정의하고 다른 객체에서 사용할 수 있는...)
Student.prototype.getSum = function(){
//getter Sum
};
Student.prototype.getAverage = function(){
//get Average
};

}

// 인스턴스 생성
// 인스턴스인지 확일할때에는 student instanceof Student 라고 사용하면 true/false를 리턴한다.
var student = new Student();
</script>



  • 캡슐화
캡슐화란 잘못 사용될 수 있는 객체의 부분을 사용자가 사용/수정을 못하게 막는것.

function Rectangle(w, h){
// width와 height가 속성이 아니라 지역변수임에 주목
var width = w;
var height = h;

//메서드 선언
this.getWidth = function(){return w;};
this.getHeight = function(){return h;};
this.setWidth = function(w){
if(w < 0){
throw '길이는 음수일 수 없습니다.';
}else{
width = w;
}
}

Rectangle.prototype.getArea = function(){
return this.getWidth() * this.getHeight();
};

var rectanlge = new Rectangle(5,7);
rectangle.setWidth(-2);


}

  • 상속 // 나중에 보강.. 지금은 귀찮아서..대충 씀
- Rectangle 객체를 상속 받은 Square객체
Rectangle객체 정의를 생략하면..

function Square(length){
this.base = Rectangle;
this.base(length, length);
}

//prototype 상속받기
Square.prototype = Rectangle.prototype;
Square.prototype.constructor =  Square;



<