본문 바로가기
JavaScript +HTML5 + CSS3

[Core JavaScript] 6. prototype

by doozzuri 2021. 8. 29.
반응형

1. 프로토 타입 

  • 프로토 타입은 모두 객체 (숫자형, 문자형, 배열, 함수든 할것없이 모든 데이터 타입
  • [1,2,3].constructor = [1,2,3].[[Prototype]].constructor = Array.prototype.contructure = Array
function Person(n, a){
	this.name = n;
    this.age = a;
}

var roy = new Person('로이', 30);

var royClone1 = new roy.__proto__.contructor('로이_클론1', 10);

var royClone2 = new roy.contructor('로이_클론1', 25);

var royClone3 = new Object.getPrototypeOf(roy).contructor('로이_클론3', 20);

var royClone4 = ne Person.prototype.contructor('로이_클론1', 10);

 

 

2. 메소드 상속 및 동작원리

function Person(n, a){
    this.name = n;
    this.age = a;
    
    Person.prototype.setOlder = function() {
    	this.age += 1;
    }
    
    Person.prototype.getAge = function() {
    	return this.age;
    }
}

var roy = new Person('로이', 30);
var jay = new Person('제이', 25);

 

3. prototype chaining

  • 인스턴스에는 메서드가 없음에도 불구.
  • [[Prototype]] 이라는 프로토타입이라는 매개체 덕분에 생성자함수(Contructor)의 prototype에 있는 메서드를 마치 자신의 것처럼 쓸수 있음.
  • [[Prototype]]로 이어진 각 prototype에 모두 접근할 수 있는 것으로 prototype chaining이라고함.
반응형

'JavaScript +HTML5 + CSS3' 카테고리의 다른 글

[개념 정리] FRONT-END  (0) 2021.09.06
[Core JavaScript] 7. Class  (0) 2021.08.29
[Core JavaScript] 5. closure  (0) 2021.08.29
[Core JavaScript] 4. callback function  (0) 2021.08.29
[Core JavaScript] 3. this  (0) 2021.08.29