• 회원가입
  • 로그인
  • 구글아이디로 로그인

[Object] JS - Object Prototypes - 객체프로토타입 (= 객체원형) ★

모든 JS 객체는 프로토 타입에서 속성과 메서드를 상속.

 

 

객체 생성자

이전 시간에 배운 내용 복습

 

<p id="demo"></p>


<script>

function Site(nameValue, hostValue, openValue) {

  this.name = nameValue;

  this.host = hostValue;

  this.open = openValue;

}


var hz  = new Site("홈짱닷컴", "Homzzang.com", 2012);

var sir = new Site("그누보드", "Sir.kr", 2001);


var hz_site = hz.name + " " + hz.host + " " + hz.open;

var sir_site = sir.name + " " + sir.host + " " + sir.open;

document.getElementById("demo").innerHTML = hz_site + " / " + sir_site; 

</script>

 

결과보기 : 홈짱닷컴 Homzzang.com 2012 / 그누보드 Sir.kr 2001


 

※ 기존 객체에 새 속성 추가하는 방식으로는 객체 생성자에 새 속성 추가 못함.

 

<p id="demo"></p>


<script>

function Site(nameValue, hostValue, openValue) {

  this.name = nameValue;

  this.host = hostValue;

  this.open = openValue;

}


Site.code = "HTML CSS JS JQ PHP SQL";

  

var hz  = new Site("홈짱닷컴", "Homzzang.com", 2012);

var sir = new Site("그누보드", "Sir.kr", 2001);

  

document.getElementById("demo").innerHTML = hz.code;

</script>

 

결과보기 : undefined


 

※ 생성자에 새 속성 추가하려면 생성자 함수 안에 추가해야 함.

※ 이 방법으로, 객체 속성이 기본값 갖을 수 있음. 

 

<p id="demo"></p>


<script>

function Site(nameValue, hostValue, openValue) {

  this.name = nameValue;

  this.host = hostValue;

  this.open = openValue;

  this.code = "HTML CSS JS JQ PHP SQL";

}

 

var hz  = new Site("홈짱닷컴", "Homzzang.com", 2012);

var sir = new Site("그누보드", "Sir.kr", 2001);

  

document.getElementById("demo").innerHTML = hz.code;

</script>

 

결과보기: HTML CSS JS JQ PHP SQL

 

 

프로토 타입 상속

 

1.

모든 JS 객체는 프로토 타입에서 속성과 메서드를 상속.

(예)

Date 객체는 Date.prototype에서 상속.

Array 객체는 Array.prototype에서 상속

Site 객체는 Site.prototype에서 상속

 

2.

Object.prototype은 프로토 타입 상속 체인의 맨 위에 있음.

Date 객체, Array 객체, Site 객체는 Object.prototype에서 상속됨.

 

 

 

객체에 속성과 메소드 추가 


객체에 새로운 속성 (또는 메소드) 추가 경우 : 앞장에서 배운대로 하면 됨.

객체 생성자에 새로운 속성 (또는 메서드) 추가 경우 : 지금 배우는 prototype 속성 이용하면 편함.

 

 

 

prototype 속성 - 객체 생성자에 속성・메서드 추가

 

※ JS prototype 속성 사용하면 객체 생성자에 새로운 속성 추가 가능.

 

<p id="demo"></p>


<script>

function Site(nameValue, hostValue, openValue) {

  this.name = nameValue;

  this.host = hostValue;

  this.open = openValue;

}


Site.prototype.code = "HTML CSS JS JQ PHP SQL";

var hz = new Site("홈짱닷컴", "Homzzang.com", 2012);

 

document.getElementById("demo").innerHTML = hz.code

</script>

 

결과보기 : HTML CSS JS JQ PHP SQL


 

※ JS prototype 속성 사용하면 객체 생성자에 새로운 메서드 추가 가능.

 

<p id="demo"></p>


<script>

function Site(nameValue, hostValue, openValue) {

  this.name = nameValue;

  this.host = hostValue;

  this.open = openValue;

}


Site.prototype.intro = function() {

  return this.name + " " + this.host

};


var hz = new Site("홈짱닷컴", "Homzzang.com", 2012);


document.getElementById("demo").innerHTML = hz.intro()

</script>

 

결과보기: 홈짱닷컴 Homzzang.com


 

★ 자신만의 프로토 타입만 수정. 표준 JS 객체의 프로토 타입은 수정 금지.

 



분류 제목
DOM_Document JS - implementation 속성 - DOMimplementation (돔구현객체)를 Document…
DOM_Document JS - importNode() 메서드 ★ - 다른문서의 노드복사해서 가져오기 (IE9 이상) ※ 아이프레임…
DOM_Document JS - inputEncoding 속성 - 입력인코딩문자셋 (= 입력인코딩언어셋) 반환 (IE9 이상)
DOM_Document JS - lastModified 속성 - 최종수정시간 (= 마지막수정시간) 반환 [읽기전용]
DOM_Document JS - links 속성 - href 속성 갖은 (앵커태그 + 에어리어태그) 링크태그집합
DOM_Document JS - normalize() 메서드 - 공백제거후, 인접텍스트노드 합치기 (document경우)
DOM_Document JS - normalizeDocument() 메서드 - normalize() 메소드와 유사 (지원 X)
DOM_Document JS - open() 메서드 - 출력모드 열기
DOM_Document JS - querySelector() 메서드 ★ - 쿼리선택자 (= 문서 안 지정 선택자 중 첫번째 것만 =…
DOM_Document JS - querySelectorAll() 메서드 ★★★ - 일치요소 모두 선택 (= querySelecto…
DOM_Document JS - readyState 속성 - 현재웹문서 로딩상태 반환 (= readyState속성 = 레디스테이트속…
DOM_Document JS - referrer 속성 ★ - 접속경로 (= 리퍼러) 반환
DOM_Document JS - removeEventListener() 메서드 ★ - 이벤트핸들러를 웹문서에서 제거 (IE9 이상)
DOM_Document JS - renameNode() 메서드 - Element 및 Attr 유형의 노드 이름 변경 (지원 X)
DOM_Document JS - scripts -모든 스크립트태그 모음
DOM_Document JS - strictErrorChecking 속성 - 엄격한오류검사 설정/반환 (= 엄격한에러체크 = 스트릭…
DOM_Document JS - title - 타이틀 (=문서제목) 설정/반환
DOM_Document JS - document.URL 속성 - 웹문서주소 (= document.URL속성 = 다큐먼트유알엘속성/도…
DOM_Document JS - write() 메서드 - 내용쓰기 (= 내용입력) : 줄바꿈 X
DOM_Document JS - writeln() 메서드 - 내용쓰기 (= 내용입력) : 줄바꿈 X (= writeln메서드 = 라…
26/67
목록
찾아주셔서 감사합니다. Since 2012