프로토타입 객체를 정의하고 new연산을 통해 인스턴스객체들을 만들 수 있습니다.


function Person(name, age){
this.name = name;
this.age = age;
}
Person.prototype.walk = function(spd){
console.log(spd+" 속도로 뛰는중");
}
//Person 객체 2개 생성
var person01 = new Person('진쓰',21);
var person02 = new Person('잠와',22);
console.log(person01.name+ ' 객체의 walk(10) 호출');
person01.walk(10);




Person 프로토타입 객체를 만들려면 Person 함수를 정의해야합니다.

자바스크립트에서는 함수도 객체입니다. 함수도 객체의 역할을 할 수 있습니다.



new연산자로 호출되는 함수는 객체를만들기위한 함수로 분류되며, 이러한 함수를 생성자라합니다.



그리고 walk 메소드 할당할때

Person.walk = funcion() {..} 같은 형태가 아니라

Person.prototype.walk = function()... 같은 형태로 만듭니다.



Person이 데이터를 담기위해 만들어진게 아니라다른 인스턴스 객체를!

만들기위한 원형틀(마치 자바의 class같은)로 만들어졌기 떄문입니다.



그리고 메모리를 효율적으로 관리할수있다고도합니다.

함수뿐만 아니라 데이터를 추가할때도 prototype을 쓰면됩니다.


prototype 속성은, 객체를 생성할때 자동으로 생성됩니다.


뭐 prototype을 안써도 가능은합니다만 좀더 메모리관리에 효율적입니다.


+ Recent posts