JS の Function() 関数オブジェクト
欧阳克
欧阳克 2017-06-12 09:29:33
0
3
801

Object() コンストラクターは次のようになります: var Object=new Function();
Array() コンストラクターは次のようになります: var Array=new Function();
.... 次に:
Function() コンストラクターは次のように表示されます: var Function=new Function()?
Created 自体?
プロトタイプ チェーンの最終的なプロトタイプ オブジェクトとして、他にも同様のネイティブ オブジェクト Object.prototype がありますが、これはどのように作成されたのでしょうか?これもnew Object()で作成されるのでしょうか?しかし、Object.prototype は JS ネイティブ システムの最初のオブジェクトであるべきではないでしょうか?
JS のプロトタイプベースの考え方が理解できなくなったような気がします。ご指導をお願いします...

欧阳克
欧阳克

温故而知新,可以为师矣。 博客:www.ouyangke.com

全員に返信(3)
学习ing

実際、これは鶏が先か卵が先かという問題ではありません。関数自体も含め、すべてのオブジェクトは実際には関数です。プロトタイプはコンストラクターと __proto__ に基づいています。これら 3 つが一緒に作成され、プロトタイプ チェーンは __proto__ の方向に基づいて、必要な属性を検索してプロトタイプを形成します。チェーン; したがって、js はシミュレートされた言語であり、これが他の言語との本質的な違いでもあります。

いいねを押す +0
我想大声告诉你
  1. new を通じて生成できるオブジェクト (関数) と、new を通じて生成する必要があるすべてのオブジェクト (関数) の間には違いがあります。

  2. js実装の過程で
  3. 関数やオブジェクトなどが提供されると考えられますが、プロトタイプチェーンを実装するために、これらを提供する際にブラウザがプロトタイプチェーンの実装に合わせて__proto__-->***.prototypeを追加するということだと思います。機能。これは、js 環境がいくつかの特別なオブジェクト (関数) を提供し、それらのオブジェクト (関数) が仕様に違反しないように処理されることを意味します。

最初のものは間違いなく正しいですが、2番目のものは私の理解です。

いいねを押す +0
伊谢尔伦

リーリー

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート