생성자 함수
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;
'[개발] 지식 > JavaScript' 카테고리의 다른 글
브라우저 객체 모델 (0) | 2015.01.27 |
---|---|
Array객체 메서드 (0) | 2015.01.26 |
객체의 속성 추가와 제거 (0) | 2015.01.20 |
객체와 배열 (0) | 2015.01.20 |
인코딩/디코딩, 코드실행함수, 숫자확인함수, 숫자변환함수 (0) | 2015.01.15 |
<