모든 자바 스크립트 객체는 프로토 타입이 있습니다. 프로토 타입은 또한 목적으로한다.
모든 자바 스크립트 객체는 프로토 타입에서 자신의 속성과 메서드를 상속합니다.
자바 스크립트 프로토 타입
모든 자바 스크립트 객체는 프로토 타입의 속성과 메서드를 상속합니다.
객체는 객체 리터럴을 사용하여 생성, 또는으로 new Object() , Object.prototype에라는 프로토 타입에서 상속합니다.
하여 만든 개체 new Date() Date.prototype하기를 상속합니다.
Object.prototype에 프로토 타입 체인의 상단에있다.
모든 자바 스크립트 객체 (Date, Array, RegExp, Function, ....) 로부터 상속 Object.prototype .
프로토 타입 만들기
객체의 프로토 타입을 작성하는 표준 방법은 객체 생성자 함수를 사용하는 것입니다 :
예
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
생성자 함수를 사용하면 사용할 수있는 new 같은 프로토 타입에서 새 개체를 만들 키워드 :
예
var myFather = new Person("John", "Doe", 50, "blue");
var myMother = new Person("Sally", "Rally", 48, "green");
»그것을 자신을 시도 생성자 함수의 프로토 타입 인 Person 개체입니다.
그것은 대문자 첫 글자와 이름 생성자 함수에 대한 좋은 습관으로 간주됩니다.
객체에 속성 및 메서드 추가
때때로 당신은 기존 개체에 새 속성 (또는 방법)을 추가 할 수 있습니다.
때때로 당신은 주어진 유형의 모든 기존 객체에 새로운 속성 (또는 방법)을 추가 할 수 있습니다.
때때로 당신은 객체 프로토 타입에 새로운 속성 (또는 방법)을 추가 할 수 있습니다.
객체에 속성 추가
기존 개체에 새 속성을 추가하는 것은 간단합니다 :
이 호텔은 추가됩니다 myFather . 하지 myMother . 아니 다른 사람의 개체.
객체에 메소드 추가
기존 개체에 새로운 방법을 추가하면 간단합니다 :
이 방법은 추가됩니다 myFather . 하지 myMother .
프로토 타입에 속성을 추가
프로토 타입은 기존의 객체가 아닌 때문에, 기존 개체에 새 속성을 추가로 당신은 프로토 타입 같은 방법으로 새 속성을 추가 할 수 없습니다.
생성자에 새 속성을 추가하려면 생성자 함수에 추가해야합니다 :
예
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
this.nationality = "English"
}
»그것을 자신을 시도 프로토 타입 속성은 프로토 타입 값 (기본값)을 가질 수있다.
프로토 타입에 메소드 추가
귀하의 생성자 함수는 방법을 정의 할 수 있습니다 :
예
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
this.name = function() {return this.firstName + " " + this.lastName;};
}
»그것을 자신을 시도 사용하여 prototype 속성
자바 스크립트의 prototype 속성을 사용하면 기존의 프로토 타입에 새로운 속성을 추가 할 수 있습니다 :
예
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
Person.prototype.nationality = "English";
»그것을 자신을 시도 자바 스크립트 프로토 타입 속성 또한 기존의 프로토 타입에 새로운 방법을 추가 할 수 있습니다 :
예
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
Person.prototype.name = function() {
return this.firstName + " " + this.lastName;
};
»그것을 자신을 시도 오직 자신의 프로토 타입을 수정합니다. 표준 자바 스크립트 객체의 프로토 타입을 수정하지 마십시오.