Objects Prototypes
Table of contents
Prototype Basic
모든 JavaScript 객체는 프로토 타입의 속성과 메서드를 상속
Prototype Inheritance
자바스크립트는 프로토타입 기반 언어, 클래스가 없어서 프로토타입으로 상속 기능을 흉내내며 작동함
▸ ECMA6 표준에서는 Class 문법이 추가되었지만 클래스 기반으로 바뀐건 아님
▸ Object.prototype은 모든 프로토 타입 상속 체인의 상단에 존재
▸ Date 객체는 Date.prototype, Array 객체는 Array.prototype, Person 객체는 Person.prototype에서 메소드와 속성을 상속받음
Adding Properties and Methods to Objects
Using the prototype Property
속성과 메소드 모두 같은 방식으로 넣을 수 있음
Syntax
arr.prototype.name = value;
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
Person.prototype.nationality = "English"; //속성넣기
Person.prototype.name = function() { //메소드 넣기
return this.firstName + " " + this.lastName;
};
var myFather = new Person("John", "Doe", 50, "blue");
document.getElementById("demo").innerHTML =
"The nationality of my father is " + myFather.nationality;
// result is The nationality of my father is English
var myFather = new Person("John", "Doe", 50, "blue");
document.getElementById("demo").innerHTML =
"My father is " + myFather.name();
// result is My father is John Doe
Prototype Advanced
Reference
Javascript 기초 - Object prototype 이해하기