JavaScript 객체 프로토타입
모든 JavaScript 객체는 프로토타입에서 속성과 메서드를 상속합니다.
이전 장에서는 어떻게 사용할 수 있는지 배웠습니다객체 생성자:
인스턴스
function Person(first, last, age, eyecolor) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eyecolor; } var myFather = new Person("Bill", "Gates", 62, "blue"); var myMother = new Person("Steve", "Jobs", 56, "green");
우리는 이미 이해했습니다, 여러분无法존재하는 객체 생성자에 새로운 속성 추가:
인스턴스
Person.nationality = "English";
생성자에 새로운 속성을 추가하려면, 반드시 생성자 함수에 추가해야 합니다:
인스턴스
function Person(first, last, age, eyecolor) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eyecolor; this.nationality = "English"; }
프로토타입 상속
모든 JavaScript 객체는 프로토타입에서 속성과 메서드를 상속합니다.
날짜 객체는 Date.prototype에서 상속됩니다. 배열 객체는 Array.prototype에서 상속됩니다. Person 객체는 Person.prototype에서 상속됩니다.
Object.prototype는 프로토타입 상속 라인의 최상단에 위치합니다:
날짜 객체, 배열 객체, Person 객체는 Object.prototype에서 상속됩니다.
객체에 속성과 메서드 추가
때로는 모든 주어진 유형의 존재하는 객체에 새로운 속성(또는 메서드)을 추가하고 싶을 수 있습니다.
때로는 객체 생성자에 새 속성(또는 메서드)을 추가하고 싶을 수 있습니다.
사용 프로토타입
속성
JavaScript 프로토타입 속성은 또한 객체 생성자에 새 속성을 추가할 수 있습니다:
인스턴스
function Person(first, last, age, eyecolor) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eyecolor; } Person.prototype.nationality = "English";
JavaScript 프로토타입 속성은 또한 객체 생성자에 새 메서드를 추가할 수 있습니다:
인스턴스
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; };
다만 수정하십시오당신 자신의 프로토타입을 수정하지 마세요. 표준 JavaScript 객체의 프로토타입을 수정하지 마세요.