1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<script>
//생성자 함수를 선언
function Retangle(width, height) {
this.width = width;
this.height = height;
}
Retangle.prototype.getArea = function () {
return this.width * this.height;
};
//변수 선언
var rectangle = new Retangle(5, 7);
alert('AREA : ' + rectangle.getArea());
</script>
| cs |
생성자 함수 Rectangle선언
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<script>
//생성자 함수를 선언
function Retangle(width, height) {
this.width = width;
this.height = height;
}
Retangle.prototype.getArea = function () {
return this.width * this.height;
};
//변수 선언
var rectangle = new Retangle(5, 7);
rectangle.width = -2;
alert('AREA : ' + rectangle.getArea());
</script>
| cs |
잘못된 속성의 사용
길이에는 음수가 나올수 없는데 음수 값을 출력을 내게 된다.
캡슐화란 이렇게 잘못 사용될 수 있는 객체의 특정 부분을 사용자가 직접 사용할 수 없게 막는 기술
또한 만일의 상황을 대비해서 특정 속성이나 메서드를 사용자가 사용할 수 없게 숨겨놓는 것
캡슐화를 구현할때 클로저를 활용을 한다.
| cs |
이제 외부에서는 width와 height를 직접 사용할 수 없고
get과 set을 이용하여 width와 height를 접근을 할 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
<script>
//생성자 함수를 선언
function Retangle(w, h) {
//변수를 선언.
var width = w;
var height = h;
//메서드를 선언
this.getWidth = function () {
return width;
};
this.getHeight = function () {
return height;
};
this.setWidth = function (w) {
if (w < 0) throw '길이는 음수일 수 없다';
else width = w;
};
this.setHeight = function (h) {
if (h < 0) throw '길이는 음수일 수 없다';
else height = h;
};
}
Retangle.prototype.getArea = function () {
return this.getHeight() * this.getWidth();
};
//변수 선언
var rectangle = new Retangle(5,7);
rectangle.setHeight(2);
alert('AREA : ' + rectangle.getArea());
</script>
| cs |
throw는 오류창을 띄어주는 놈
길이가 0이하로 가면 throw를 이용하여 에러창을 띄운다
댓글
댓글 쓰기