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

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

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|작성자 뎅구르르
 
번호 제목 글쓴이 날짜 조회 수
246 [Gemini] ajax 와 fetch 의 차이 황제낙엽 2025.01.04 3419
245 [검토 완료] 디바이스 카메라로 촬영한 사진을 서버에 업로드하기 샘플 황제낙엽 2024.11.21 3987
244 브라우저에서 이미지를 편집(crop 등) 할 수 있는 오픈소스 Cropper.js 황제낙엽 2024.11.16 3842
243 [ChatGPT] json data 의 정렬 [1] 황제낙엽 2024.07.23 3352
242 DOMContentLoaded 이벤트와 window.onload 이벤트 황제낙엽 2024.07.15 3669
241 fetch() 사용 예제들 황제낙엽 2024.07.09 3380
240 [Copilot] Vanilla JavaScript에서 외부 스크립트 파일에 정의된 함수들을 로드 황제낙엽 2024.06.21 3758
239 [Copilot] ES6 모듈(module) 문법 황제낙엽 2024.06.21 3805
238 [Copilot] JSON 객체 내부 데이터를 순회하면서 조회하는 코드 황제낙엽 2024.06.02 3270
237 [Copilot] JavaScript로 서버에 특정 값을 POST 방식으로 전달하고 응답을 기다리지 않고 바로 종료 황제낙엽 2024.05.31 3615
236 json 데이터 내의 변수명에 prefix 로 type 표현하기 황제낙엽 2024.04.15 3361
235 fetch() 함수 사용 예제 file 황제낙엽 2023.11.23 3605
234 현재 document 의 host 와 port 를 얻는 방법 황제낙엽 2023.10.03 4209
233 (Bard) FileReader 로 여러개의 파일을 read 하는 법 file 황제낙엽 2023.08.23 3660
232 How to build a file upload service with vanilla JavaScript file 황제낙엽 2023.08.22 3715
231 (Bard) JavaScript로 JSON 배열을 작성하는 방법 황제낙엽 2023.08.21 3672
230 모바일 브라우저에서 file input element 를 이용하여 여러장의 이미지를 서버에 전송하려 할때 [1] 황제낙엽 2023.08.21 3703
229 navigator.mediaDevices 황제낙엽 2023.08.21 3798
228 Barcode Detection API 황제낙엽 2023.08.06 3854
227 정규식을 이용한 이메일 검증 스크립트 file 황제낙엽 2023.06.25 2894