[ 생활코딩 ] prototype vs proto
✨ function이란?
함수는 자바스크립트에서 객체이다.
객체이기 때문에 property를 가질 수 있다.
✨ 예제로 알아보기
함수는 자바스크립트에서 객체이다.
객체이기 때문에 property를 가질 수 있다.
예를 들어, Person이라는 함수(=객체)를 만들어보자.👇
function Person(name, first, second){
this.name = name;
this.first = first;
this.second = second;
}
이렇게 함수를 만들면 Person
과 Person's prototype
이라는 2개의 객체가 생성된다.
이 2개의 객체는 서로 연관되어있다.
Person안에 prototype이라는 property가 있고, 이는 Person's prototype이라는 객체를 가리킨다.
또한 Person's prototype안에는 constructor라는 property가 있고, 이는 Person을 가리킨다.
Prototype
Person.prototype.sum = function(){ };
위의 코드를 추가하면 Person's prototype에 sum이라는 함수가 추가된다.👇
Proto
생성자 함수로 객체를 가져오면 어떻게 될까?
let seohee = new Person("seohee", 24, 34);
__proto__
라는 property가 생성되며, 이는 seohee라는 객체를 생성한 Person의 prototype을 가리키게 된다.
만약 여기서 seohee.name이라는 값을 출력하고자 한다면👇
console.log(seohee.name);
seohee객체를 먼저 찾는다. name이 있기 때문에 해당하는 값인 "seohee"를 출력한다.
seohee.sum()
seohee객체에는 sum이 없기 때문에 proto를 따라 Person's prototype안에 있는 sum을 가져와서 출력하게 되어있다.
🌈 결론
어떤 객체가 있는데, 객체가 자체적으로 갖고 있지 않은 값을 사용하려고 할때, prototype을 근거로 해서 가져오는데, 이에 대한 원리를 이해하는 것이 중요하다.
어떤 객체가 있는데, 객체가 자체적으로 갖고 있지 않은 값을 사용하려고 할때, prototype을 근거로 해서 가져오는데, 이에 대한 원리를 이해하는 것이 중요하다.
📚 학습할 때, 참고한 자료 📚
생활코딩 - JavaScript 객체지향 프로그래밍 : 15. prototype vs proto
Author And Source
이 문제에 관하여([ 생활코딩 ] prototype vs proto), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@seohee0112/생활코딩-prototype-vs-proto저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)