프로그래밍/JavaScript Web App
자바스크립트 프로토타입 및 생성자 (C#에서 클래스 생성)
쇠주는참이슬
2013. 1. 15. 16:18
자바스크립트 프로토타입 및 생성자(javascript prototype)
생성자는 선언형 함수로 선언하는게 좋다. (암묵형,묵시적은 되긴하나 별로..) (constructor 로 형을 체크하기가 용이함)
아래와같이 내가 만든 생성자에 프로퍼티를 설정할수 있다.(함수설정),
이미 생성되어있는거에 대해서도 추가가능.
1: 2: 3: 4: /* 생성자에서 프로퍼티는 무조건 this를 사용해주어야 한다. */ 5: 6: 7: 8: 9: 예제1) 내가만든 Custom 생성자에 프로토타입 추가. 10: 11: <script type="text/javascript">
12: 13: function Member()
14: 15: { 16: 17: this.firstName;
18: 19: this.lastName;
20: 21: // this.getName = function(){ 좋지 않은코드
22: 23: // return this.firstName + " " + this.lastName
24: 25: // }
26: 27: }; 28: 29: // 아래처럼 속성 프로토타입을 선언해주는 것이 좋다.
30: 31: Member.prototype.getName = function()
32: 33: { 34: 35: return this.firstName + " " + this.lastName;
36: 37: }; 38: 39: 40: var m1 = new Member();
41: 42: 43: 44: 45: m1.firstName = "홍";
46: 47: m2.lastName = "길동; 48: 49: 50: 51: 52: console.log(m1.getName()); 53: 54: console.log(m1); 55: 56: </script>
57: 58: 출력결과 : 홍 길동 59: 60: m1객체 모두. 61: 62: 63: 64: 65: 66: 67: 예제2) 이미 구성되어있는 생성자에 프로토타입 추가 68: 69: 70: 71: 72: var d1 = new Date(); 73: 74: 75: Date.prototype.toKString = function(){ 76: 77: var strout = this.getFullYear() + "-" + (this.getMonth()+1) + "-" + this.getDate(); 78: 79: return strout; 80: 81: } 82: 83: console.log(d1.toKString()); 84: 85: 86: 87: 88: 현재날짜를 yyyy-mm-dd 로 출력(안에 결과는 마음대로 수정해서 사용하면 된다)