Object() コンストラクターは次のようになります: var Object=new Function();
Array() コンストラクターは次のようになります: var Array=new Function();
.... 次に:
Function() コンストラクターは次のように表示されます: var Function=new Function()?
Created 自体?
プロトタイプ チェーンの最終的なプロトタイプ オブジェクトとして、他にも同様のネイティブ オブジェクト Object.prototype がありますが、これはどのように作成されたのでしょうか?これもnew Object()で作成されるのでしょうか?しかし、Object.prototype は JS ネイティブ システムの最初のオブジェクトであるべきではないでしょうか?
JS のプロトタイプベースの考え方が理解できなくなったような気がします。ご指導をお願いします...
実際、これは鶏が先か卵が先かという問題ではありません。関数自体も含め、すべてのオブジェクトは実際には関数です。プロトタイプはコンストラクターと __proto__ に基づいています。これら 3 つが一緒に作成され、プロトタイプ チェーンは __proto__ の方向に基づいて、必要な属性を検索してプロトタイプを形成します。チェーン; したがって、js はシミュレートされた言語であり、これが他の言語との本質的な違いでもあります。
new を通じて生成できるオブジェクト (関数) と、new を通じて生成する必要があるすべてのオブジェクト (関数) の間には違いがあります。
関数やオブジェクトなどが提供されると考えられますが、プロトタイプチェーンを実装するために、これらを提供する際にブラウザがプロトタイプチェーンの実装に合わせて
__proto__-->***.prototype
を追加するということだと思います。機能。これは、js 環境がいくつかの特別なオブジェクト (関数) を提供し、それらのオブジェクト (関数) が仕様に違反しないように処理されることを意味します。最初のものは間違いなく正しいですが、2番目のものは私の理解です。
リーリー