prototype , __proto__


JavaScriptでは、関数もオブジェクトなので、propertyを持つことができます.
では、関数にコンストラクション関数またはprototype関数を作成するときに何が起こるかを説明します.

  • まずPersonという名前の関数を作成し、Personという名前のオブジェクトとPerson's Prototypeを2つ作成します.

  • PersonオブジェクトにはPrototypeが含まれています.これはPersonのPrototypeを指します.
  • Person's Prototypeも、Personオブジェクトに属していることを示すコンストラクション関数という要素を作成します.
    このコンストラクション関数要素はPersonオブジェクトに関連付けられています.
  • Personならprototype.sum=function(){}を作成すると、Person'sプロトタイプにsum関数が作成されます.
  • では、Personをコンストラクション関数とするオブジェクトを作成します.
  • kim을 만들면 __proto__가 만들어진다.
    즉, Person과 link되었음을 뜻한다.
    __proto__는 Person's prototype을 뜻하므로 kim은 Person's prototype와 연결된다.
  • 金の中にnameという財産が見つかれば、金安の名前が付くので戻ってきます.
    しかしkimにないsumという方法を見つけると、リンクのPerson's prototypeにsumがあるかどうかがわかります.

  • 出典:生活コード向けJavaScriptオブジェクトプログラミング
    https://www.youtube.com/watch?v=wT1Bl5uV27Y&list=PLuHgQVnccGMAMctarDlPyv6upFUUnpSO3&index=26