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

[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 객체의 프로토 타입은 수정 금지.

 



분류 제목
Window_Console JS - console.timeEnd() 메서드 - 콘솔창에서 타이머 종료 후 기록 쓰기 (= console…
Window_Console JS - console.trace() 메서드 - 코드 실행 내역 역추적해 콘솔에 표시 (= console.t…
Window_Console JS - console.warn() 메서드 - 콘솔에 경고 쓰기 (= console.warn메서드 = 콘솔원…
DOM_Document JS - activeElement 속성 ★ - 현재포커스요소 반환 (= 액티브엘러먼트속성)
DOM_Document JS - addEventListener() 메서드 ★ - document에 이벤트 걸기. (= addEven…
DOM_Document JS - adoptNode() 메서드 ★ - 다른문서의 노드 잘라내서 가져오기 (IE9 이상) ※ 아이프레임…
DOM_Document JS - anchors 속성 - name 속성 갖은 모든 앵커태그집합 반환 (=anchors속성 = 앵커즈 …
DOM_Document JS - applets 속성 - 모든 애플릿태그집합 반환
DOM_Document JS - baseURI 속성 - 웹문서 기본URI 반환 (IE 지원X)
DOM_Document JS - body 속성 - 웹문서본문 설정/반환
DOM_Document JS - close() 메서드 - 웹문서출력모드 닫고 수집된 데이터 표시
DOM_Document JS - document.cookie 속성 ★ - (쿠키이름/쿠키값) 쌍을 설정/반환 (= document.…
DOM_Document JS - charset 속성 - 문자셋 (= 언어셋) 반환 (IE9 이상)
DOM_Document JS - characterSet 속성 - 문자셋 (= 언어셋) 반환 (IE9 이상)
DOM_Document JS - createAttribute() 메서드 ★ - 속성생성 (예: 클릭색상변경)
DOM_Document JS - createComment() 메서드 - 주석생성
DOM_Document JS - createDocumentFragment() 메서드 - 가상노드생성
DOM_Document JS - createElement() 메서드 ★ - 요소생성 (= createElement메서드 = 크리에이…
DOM_Document JS - createEvent() 메서드 - 이벤트객체생성 (예: 마우스오버횟수구하기)
DOM_Document JS - createTextNode() 메서드 - 텍스트노드생성
24/67
목록
찾아주셔서 감사합니다. Since 2012