__proto__とprototype

by s_hiroshi

HTML

<blockquote>
すべてのオブジェクトインスタンスは、インスタンスを生成したコンストラクタ関数のprototypeにリンクする秘密のプロパティ(__proto__)を持っています。この秘密のリンクを使ってインスタンスのコンストラクタ関数のprototypeプロパティを取得できます。
</blockquote>
<p>開眼!JavaScript 042</p>

<blockquote>
 8.3 prototypeプロパティはすべてのFunction()インスタンスに自動的に付与される
</blockquote>

<p>開眼!JavaScript p111</p>

<p>ArrayやNumberもFunction()のインスタンス。
つまりすべてのコンストラクタ関数はprototypeプロパティを持つ。</p>
<p>
現在は__proto__は非推奨。<br>
Object.getPrototypeOf()を使う。<br>
ref.<br>
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/proto
</p>

JavaScript

let a = ['a', 'b', 'c']
console.log(Object.getPrototypeOf(a));

function Human(name) {
  this.name = name;
}

Human.prototype.getName = function() {
  return this.name;
};

var human = new Human();
console.log(Object.getPrototypeOf(human));