JavaScript 문법 - prototype 2편

1편에서 언급했듯이, __proto__ property가 생략 가능하다고 하였는데 사실인지 살펴보자

__proto__의 속성을 보면 constructor가 있는 것을 확인할 수 있다.

👀 그러나 배열에는 분명히 constructor라는 property가 없음에도 불구하고 Array()가 출력된다.

배열의 __proto__.constructor도 위와 같이 Array()가 출력된다.

이로써 __proto__ property가 생략 가능 하다는 것을 알 수 있다.


좀 더 구체적인 예제를 살펴보자 🕶

gomu와 gomuClone들은 모두 Person의 instance가 된다.

이유는 ❓❕

1. gomu instance의 __proto__ property의 constructor는 Person(n,a)

2. __proto__ 는 생략 가능하다

3. Object.getPrototypeOf()의 정의🎓 

   Object.getPrototypeOf() 메서드는 지정된 객체의 프로토타입

   (가령 내부 [[Prototype]] 속성값)을 반환합니다
   
   📌 즉, 생성자 함수의 prototype에 접근 가능하다❗❕
   
   gomu의 prototype 속성값이 gomuProto에 할당됨
   

4. gomuClone3 : 즉 gomuProto의 constructor는 Person(n, a)이다.

5. gomuClone4 : 생성자 함수의 prototype의 constructor는 자기자신이다.


📝 정리

생성자 함수의 prototype에 접근이 가능하다❗

생성자 함수에 접근 할 수 있다❕

좋은 웹페이지 즐겨찾기