| 
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를 이용하여 에러창을 띄운다
댓글
댓글 쓰기