티스토리 뷰

Node.js

[node.js]프로토 타입 2

감자형 2017. 9. 17. 13:55
  • 프로토타입

자바스크립트에서도 객체의 원형을 정의 한 후 그원형에서 새로운 인스턴스 객체를 만들어 낼 수 있음.

Ex) 프로토 타입 예제

function Person(name,age){

    this.name = name;

    this.age = age;

}


Person.prototype.walk = function(speed){

    console.log(speed + " km 속도로 걸어 갑니다.");

}


var person01 = new Person('kim ',20);

var person02 = new Person('park',24);


console.log(person01.name + "객체의 walk(10)을 호출 합니다.");

person01.walk(10);

=>1.

 Person 프로토 타입의 객체를 만드려면 먼저 Person 함수를 정의 한다. 함수 중에서 new 연산자로 호출되는 객체를 만들기 위한 함수로 분류 이러한 함수를 생성자(Constructor)라고 한다.

=>2.

 prototype을 정의 하는 이유는 쓸데 없는 메모리의 낭비를 막기위해서 어딘가에 있는 Object의 메모리 공간에서 중복되는 인스턴스들을 하나의 틀에 저장하여 쉽게 가져다 쓰기 위해서  prototype형태로 쓰게 된다. 

  • 위의 코드에서 this 의 의미?
생성자 함수로 객체를 만들면, 그 객체안에서 사용하는 this키워드는 그 함수를 호출하는 객체를 가리킨다.

  • prototype 객체는 Person객체 자신을 가리키도록 되어 있다.
1. Person.walk = function { }

2. Person.prototype.walk = function() { }

이 두개의 결과는 같은 결과값을 얻을 수 있다.

+ 요약

두가지 코드 모두 Person 이라는 틀로 만들어 낸 인스턴스 객체에서 walk 함수를 호출할 수 있음.
prototype 속성으로 추가하면 인스턴스 객체를 만들 때 메모리를 효율적으로 관리 가능


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함