For Programmer

자바스크립트 - prototype(프로토타입) 본문

Programming language/JavaScript

자바스크립트 - prototype(프로토타입)

유지광이 2020. 7. 26. 15:50
728x90

프로토타입 이해하기

*Person() 함수를 이용해서 객체를 생성하게 되면 sum() 함수도 무조건 같이 생성되게 된다. 이는 메모리낭비를 가져올 수 있으며 이때 사용가능한 것이 prototype이다. prototype은 함수만 가지고 있는데 .prototype을 이용하여 함수는 prototype Object을 가지게 된다. prototype Object라는 것은 빈공간이라고 생각하면된다. 객체는 new라는 생성자를 통해 생성하게 되면 무조건 __proto__라는 속성을 가지게 되는데 이는 조상이었던 함수의 Prototype Object를 가리키게 된다. 즉, 객체가 생성되면서(var lee = new Person2()) 위 sum()이라는 함수를 찾기 위해 우선 자기자신부터 그 위의 조상 , 그리고 Object의 Prototype Object까지 탐색한다음에 없으면 undefined를 출력하게 되는 것 이다.

위의 설명을 간단한 그림으로 이해하자.

위의 프로토타입 체인을 Object객체까지 연결하면 다음과 같은 형태이다.

*이런 프로토타입 체인 구조 때문에 모든 객체는 Object의 자식이라고 불리고, Object Prototype Object에 있는 모든 속성을 사용할 수 있습니다. 한 가지 예를 들면 toString함수가 있겠습니다. 이런 구조를 prototype chain이라고 한다.

 

더 자세한 prototype에대한 설명은

https://medium.com/@bluesh55/javascript-prototype-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-f8e67c286b67

 

[Javascript ] 프로토타입 이해하기

자바스크립트는 프로토타입 기반 언어라고 불립니다. 자바스크립트 개발을 하면 빠질 수 없는 것이 프로토타입인데요. 프로토타입이 거의 자바스크립트 그 자체이기때문에 이해하는 것이 어렵

medium.com

해당 글을 참고하시면됩니다.

728x90
Comments