Prototype [펌]자바스크립트에서 객체 생성 방법

황제낙엽 2008.08.07 14:34 조회 수 : 430 추천:96

sitelink1  
sitelink2  
sitelink3  
sitelink4 http://1 
extra_vars4 ko 
extra_vars5 http://blog.naver.com/nhsbs?Redirect=Log&logNo=120014297669 
extra_vars6 sitelink1 
자바스크립트는 자바처럼 객체지향언어란건 다 아실겁니다.
자바스크립트에서 객체 생성하는 방법은
obj=new Object();   
obj.name='Name';   
obj.type='Normal';   
obj.property='Property';


처럼 하심 되는데 아래처럼 function name에 new키워드를 쓰셔도 됩니다. (자바스크립트에는 기본 내장객체가 있는데 Object는 그중 가장 최상위의 내장객체이다. 아래 방법은 단지 사용자가 클래스를 정의하고 객체를 생성하는 방법이다)
function createObject(name,type,prop){   
      this.name=name;   
      this.type=type;   
      this.prop=prop;   
}   
obj=new createObject('Name','Normal','Property');


간혹, 다른 오브젝트로부터 method들를 상속받고 싶을경우
오브젝트의 prototype 에 new키워드와 상속받을 객체이름을 지정해주면됩니다.
function superObject(){   
      this.showName=superObject_showName;   
}   
  
function superObject_showName(){   
      alert(this.name);   
}   
  
function firstObject(name,type,prop){   
      this.name=name;   
      this.type=type;   
      this.prop=prop;   
}   
  
firstObject.prototype=new superObject;   
  
function secondObject(name,age){   
      this.name=name;   
      this.age=age;   
}   
  
secondObject.prototype=new superObject;   
  
first=new firstObject('TEST1','Normal','Easy');   
second=new secondObject('TEST2','29');   
first.showName();   
second.showName();  


이걸 PHP로 했다면 아래와 같으니 서로비교해보시고 이해해보시길.
class SUPER{   
      function showName(){   
           echo $this->name;   
      }   
}   
  
class FIRST extends SUPER{   
      function FIRST($name,$type,$prop){   
            $this->name=$name;   
            $this->type=$type;   
            $this->prop=$prop;   
      }   
}   
  
class SECOND extends SUPER{   
      function SECOND($name,$age){   
            $this->name=$name;   
            $this->age=$age;   
      }   
}   
$first=new FIRST('TEST1','Normal','Easy');   
$second=new SECOND('TEST2','29');   
$first->showName();   
$second->showName();


[출처] 자바스크립트 클래스 사용법, javascript class 사용법, prototype|작성자 뎅구르르
 
번호 제목 글쓴이 날짜 조회 수
86 연산자 (===, ==, >=, <=) 황제낙엽 2012.05.30 522
85 테이블 엘리먼트 생성 스크립트 황제낙엽 2009.04.07 521
84 JSON.parse() - feat. Object.assign 황제낙엽 2017.07.09 521
83 체인 생성자(생성자 체인), 프로토타입 체인 그리고 생성자 재지정 황제낙엽 2009.08.12 520
82 자바스크립트 타입 비교 테이블 + 테이블 작성 스크립트 [1] file 황제낙엽 2017.06.23 519
81 Strict 모드 황제낙엽 2020.08.23 516
80 소숫점을 포함한 반올림 황제낙엽 2008.12.11 516
79 3시간 걸려서 만든 입력폼 자릿수체크 스크립트 황제낙엽 2006.04.22 516
78 CORS 관련 레퍼런스 URL 황제낙엽 2020.07.10 515
77 Stack (스택) 예제 프로그램 황제낙엽 2012.12.27 515
76 파이어폭스로 스크립트 디버깅하기 황제낙엽 2009.01.14 515
75 Methods and properties of Microsoft.XMLDOM 황제낙엽 2005.12.04 515
74 [key:value] 형태로 object를 저장할 수 있는 Static영역의 해쉬맵 클래스 (Map) 황제낙엽 2008.11.04 514
73 [펌] 아사페릴의 사생활 - Javascript의 클래스에 관한 이야기 황제낙엽 2009.04.02 513
72 env.js 사용시 부족한 부분 file 황제낙엽 2012.02.15 512
71 XMLHttpRequest 제대로 활용하기 file 황제낙엽 2017.08.01 512
70 charcode 32와 160 차이 (javascript char 160 to 32) 황제낙엽 2019.05.11 511
69 getBoundingClientRect in FF3 file 황제낙엽 2013.01.11 511
68 toString 변환 테이블 황제낙엽 2009.09.02 511
67 code compressor & decompressor 황제낙엽 2015.01.02 509