私はJavaScriptを使用している時に、理解せずにずっと放置していた。
__proto__
と言う謎の物体。これを理解せずに放置している人は多いと思う。
今回はそれをこの記事をきっかけに理解を試みた。
__proto__
とは一体なんなのか?

空のオブジェクトを作成したはずなのに、__proto__
が出てくる。
Objects.prototype
だった
JavaScriptでは作成された全てのオブジェクトの__proto__
に対して、
自動的にObjects.prototype
プロパティが付属している。

__proto__
とObjects.prototype
が全く同じプロパティを持っていることがわかる。
これはx
がObjects.prototype
から同じ__proto__
を継承していると言うことである!
新しい機能を割り当てることも可能
Object.prototype
を変更することで、その後に作成される全てのオブジェクトにも変更が含まれる。
新しい関数を与えてみると。
このように新しい機能を割り当てると、その後のオブジェクトではその機能を持つことが可能となる。
オブジェクトだけじゃない__proto__
オブジェクトだけが__proto__
を持っているわけではなく、他にも存在する!
- Array.prototype
- Number.prototype
- String.prototype
- Boolean.prototype
最後に
この__proto__
の機能を使うことは非推奨なので、使う際には十分注意をしていただきたい。