티스토리 뷰

 

 

 

자바스크립트 프로토타입 및 생성자(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 로 출력(안에 결과는 마음대로 수정해서 사용하면 된다)
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
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
글 보관함