prototype , __proto__

이민호·2021년 3월 25일
0

자바스크립트에서는 함수또한 객체이기때문에 property를 가질 수 있다.

그렇다면 함수에서 constructor나 prototype함수를 만들때 무슨일이 일어나는지 알아보자.

  • 먼저 Person이란 함수를 만들면 Person이라는 객체와 Person's prototype 두개가 만들어진다.

  • Person 객체에는 prototype을 포함하고 있는데 이는 Person's prototype을 가리킨다.

  • Person's prototype또한 자신이 Person객체의 소속임을 나타내기 위해서 constructor라는 요소를 만든다.
    이 constructor요소가 Person객체와 연결되어 있다.
  • 만약 Person.prototype.sum = function(){}을 만든다면 Person's prototype에 sum함수가 만들어 지는 것이다.
  • 자 그럼 이제 Person을 constructor로하는 객체를 하나 만들어 보자
kim을 만들면 __proto__가 만들어진다.
즉, Person과 link되었음을 뜻한다.
__proto__는 Person's prototype을 뜻하므로 kim은 Person's prototype와 연결된다.

  • 만약 kim에서 name이라는 property를 찾는다면 kim안의 name이 있으므로 return할 것이다.
    그러나 kim안에 없는 sum이라는 메소드를 찾는다면link되어있는 Person's prototype에 sum이 있는지 찾을 것이다.

출처:생활코딩 JavaScript Object Oriented Programming
https://www.youtube.com/watch?v=wT1Bl5uV27Y&list=PLuHgQVnccGMAMctarDlPyv6upFUUnpSO3&index=26

profile
life is fun

0개의 댓글

관련 채용 정보