Language/Javascript

[JS] 프로토타입

검은 까마귀 2022. 2. 24. 20:31

자바스크립트는 컴파일 언어들과 다르게 프로토타입 기반의 객체 지향 언어이다.

상속의 개념이 클래스 기반의 객체 지향 언어와는 약간 다른데 자바스크립테서는 현재 존재하고 있는 객체를 프로토타입으로 사용하여, 해당 객체를 복제하여 재사용하는 것을 상속이라고 한다.

자바스크립트에서는 모든 객체는 프로토타입이라는 객체를 갖고 있다.
모든 객체는 그들의 프로토타입으로 부터 프로퍼티와 메소드를 상속받게된다.

이처럼 자바스크립트의 모든 객체는 최소한 하나 이상의 다른 객체로 부터 상속 받으며,
이때 상속되는 정보를 제공하는 객체를 프로토타입이라고 한다.


생성자를 통해 생성된 객체도 모두 같은 프로토타입을 갖게 된다.
Object.prototype 객체는 이러한 프로토타입 체인에서도 가장 상위에 존재하는 프로토타입입니다.

따라서 자바스크립트의 모든 객체는 Object.prototype 객체를 프로토타입으로 상속받습니다.

function Dog(color, name, age) { // 개에 관한 생성자 함수를 작성함.

    this.color = color;          // 색에 관한 프로퍼티

    this.name = name;            // 이름에 관한 프로퍼티

    this.age = age;              // 나이에 관한 프로퍼티

}

var myDog = new Dog("흰색", "마루", 1); // 이 객체는 Dog라는 프로토타입을 가짐.

document.write("우리 집 강아지는 " + myDog.name + "라는 이름의 " + myDog.color + " 털이 매력적인 강아지입니다.");

 

 

반응형

'Language > Javascript' 카테고리의 다른 글

[JS] 객체 메소드  (0) 2022.02.24
[JS] 객체 다루기  (0) 2022.02.24
[JS] 객체  (0) 2022.02.24
[JS] 함수  (0) 2022.02.24
[JS] 변수  (0) 2022.02.24