-
[javascript] 48. 객체 프로토타입(Object prototype) - 자바스크립트 강좌 JS / CSEWeb/JavaScript 2015. 6. 13. 15:32JavaScript Object Prototypes
모든 자바스크립트 객체는 프로토타입을 갖습니다. 프로토타입 또한 객체 입니다.
모든 자바스크립트 객체는 그들만의 프로토타입으로 부터 속성과 메소드를 물려 받습니다.
1. Creating a Prototype
프로토타입 객체를 생성하는 일반적인 방법은 객체 생성자 함수를 사용하는 것입니다:
생성자 함수와 함께, new 키워드를 통해서 같은 프로토타입 객체를 생성할 수 있습니다:
123456789101112131415161718192021222324<!DOCTYPE html><html><body><p id="demo"></p><script>function person(first, last, age, eye) {this.firstName = first;this.lastName = last;this.age = age;this.eyeColor = eye;}var myFather = new person("John", "Doe", 50, "blue");var myMother = new person("Sally", "Rally", 48, "green");document.getElementById("demo").innerHTML ="My father is " + myFather.age + ". My mother is " + myMother.age;</script></body></html>cs 2. Adding a Property to an Object
객체에 새로운 속성를 주는 방법은 다음과 같습니다:
123456789101112131415161718192021222324252627<!DOCTYPE html><html><body><p id="demo"></p><script>function person(first, last, age, eye) {this.firstName = first;this.lastName = last;this.age = age;this.eyeColor = eye;}var myFather = new person("John", "Doe", 50, "blue");var myMother = new person("Sally", "Rally", 48, "green");myFather.nationality = "English";document.getElementById("demo").innerHTML ="My father is " + myFather.nationality;</script></body></html>cs 3. Adding a Method to an Object
객체에 새로운 메소드를 추가하는 방법은 아래와 같습니다:
1234567891011121314151617181920212223242526272829<!DOCTYPE html><html><body><p id="demo"></p><script>function person(first, last, age, eye) {this.firstName = first;this.lastName = last;this.age = age;this.eyeColor = eye;}var myFather = new person("John", "Doe", 50, "blue");var myMother = new person("Sally", "Rally", 48, "green");myFather.name = function() {return this.firstName + " " + this.lastName;};document.getElementById("demo").innerHTML ="My father is " + myFather.name();</script></body></html>cs 4. Adding Properties to a Prototype
프로토 타입은 존재하는 객체가 아니기 때문에, 새로운 속성을 프로토타입에 추가 할 수 없습니다.
생성자에 새로운 속성을 추가하려고 한다면, 생성자 함수를 통하여 추가해야 합니다:
1234567891011121314151617181920212223242526<!DOCTYPE html><html><body><p id="demo"></p><script>function person(first, last, age, eye) {this.firstName = first;this.lastName = last;this.age = age;this.eyeColor = eye;this.nationality = "English";}var myFather = new person("John", "Doe", 50, "blue");var myMother = new person("Sally", "Rally", 48, "green");document.getElementById("demo").innerHTML ="My father is " + myFather.nationality + ". My mother is " + myMother.nationality;</script></body></html>cs 5. Adding Methods to a Prototype
생성자 함수에 또한 메소드를 선언 할 수 있습니다:
12345678function 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;};}cs 6. Using the prototype Property
자바스크립트 프로토타입 속성은 존재하는 프로토타입에 새로운 속성을 추가하는 것을 허용합니다:
1234567function person(first, last, age, eyecolor) {this.firstName = first;this.lastName = last;this.age = age;this.eyeColor = eyecolor;}person.prototype.nationality = "English";cs 자바스크립트 프로토타입 속성은 존재하는 프로토타입에 새로운 메소드을 추가하는 것을 허용합니다:
123456789function 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;};cs 'Web > JavaScript' 카테고리의 다른 글
[javascript] 51. 함수 호출(function invocation) - 자바스크립트 강좌 JS / CSE (0) 2015.06.13 [javascript] 50. 함수 매개변수(function parameters) - 자바스크립트 강좌 (0) 2015.06.13 [javascript] 49. 함수 선언(function definitions) - 자바스크립트 강좌 JS / CSE (0) 2015.06.13 [javascript] 47. 객체 메소드(Object methods) - 자바스크립트 강좌 JS / CSE (0) 2015.06.13 [javascript] 46. 객체 속성(Object properties) - 자바스크립트 강좌 JS / CSE (0) 2015.06.13 [javascript] 45. 객체 선언(Object defination) - 자바스크립트 강좌 JS / CSE (0) 2015.06.13