JSプロトタイプとプロトタイプチェーンについての簡単な説明

JSプロトタイプとプロトタイプチェーンについての簡単な説明

1. プロトタイプ

JavaScript のすべての関数にはこのプロパティがあり、プロトタイプ プロパティを持つすべてのオブジェクトは関数です。プロトタイプの目的は、オブジェクトにメソッド/プロパティを追加することです。

関数の永続性(){}
person.prototype.name = "xiaoming"
console.log(person.prototype)//{名前: "xiaoming", コンストラクター: ƒ}

2. プロトタイプポインタ: __proto__

上記の persion 関数がインスタンス オブジェクト Persion1 を生成し、prototype を使用してそれに属性を追加する場合、記述は次のようになります。

関数の永続性(){}
person.prototype.name = "xiaoming"
Persion1 を新しい Persion() にします。
console.log(Person1) //コンソールの結果は次のようになります

インスタンス Persion1 を印刷した結果は次のとおりです。

上記に出力された結果から、Persion1.__proto__.name = persion.prototype.name、つまり、インスタンス オブジェクトの __proto__ 属性はそのコンストラクターのプロトタイプと等しいことがわかります。

上記を理解すると、プロトタイプチェーンは簡単に理解できます。Persion1.__proto__.__proto__ を通じて Object メソッドを直接見つけることができます。あまり直感的ではないかもしれませんが、コードは次のとおりです。

関数の永続性(){}
person.prototype.name = "xiaoming"
Persion1 を新しい Persion() にします。
console.log(Person1.__proto__.__proto__.toString) //プロトタイプチェーンで見つかった Object の toString メソッド console.log(Object.prototype.toString) //Object の toString メソッド

コンソールには次の結果が出力され、プロトタイプ チェーンのレベルごとの検索機能が確認されます。

要約する

あらゆるオブジェクトは、プロトタイプ チェーン、つまり __proto__ 属性を通じてレベルごとに検索できます。最終的な焦点はオブジェクトであり、唯一の方法は関数です。それらの関係はチェーンのようなもので、この関係をプロトタイプ チェーンと呼びます。

上記は、JS プロトタイプとプロトタイプ チェーンの詳細についての簡単な説明です。JS プロトタイプとプロトタイプ チェーンの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • JavaScriptプロトタイプチェーンの詳細な説明
  • JavaScript プロトタイプとプロトタイプチェーンの詳細
  • JavaScriptプロトタイプとプロトタイプチェーンを徹底的に理解する
  • JavaScriptプロトタイプチェーンを理解する
  • JS の難しさ 同期と非同期、スコープとクロージャ、プロトタイプとプロトタイプ チェーンの詳細な説明
  • js のプロトタイプ、プロトタイプ オブジェクト、プロトタイプ チェーンの包括的な分析
  • JavaScript のプロトタイプとプロトタイプチェーンの詳細な説明

<<:  MySQL実行計画の詳細な分析

>>:  VMware15 の CentOS7 インストールの詳細なプロセスとよくある問題 (画像とテキスト)

推薦する

node_modulesを削除して再インストールする方法

目次ステップ1: プロジェクトをインストールするディレクトリにnode_modulesをインストール...

W3C チュートリアル (7): W3C XSL アクティビティ

スタイル シートは、ドキュメントの表示方法、発音方法、または入力方法を記述します。XSL 言語は、X...

Bツリーの削除プロセスの紹介

前回の記事 https://www.jb51.net/article/154157.htm では、B...

設定ファイルを変更した後、操作を再開します

余計なことは言わないで、コードだけ見てみましょう〜 # docker-compose をダウン # ...

Bootstrapグリッドの垂直および水平配置の詳細な説明

目次1. Bootstrap グリッドレイアウト2. 垂直方向の配置2.1 行タグの垂直方向の配置を...

MYSQL ロック解除とロックテーブルの紹介

MySQL ロックの概要他のデータベースと比較すると、MySQL のロック メカニズムは比較的単純で...

MySQL 8.0.18 のインストールと設定方法のグラフィック チュートリアル (Linux)

この記事では、Linux MySQL 8.0.18のインストールと設定のグラフィックチュートリアルを...

純粋なCSSを使用してスクロールシャドウ効果を実現します

端的に言うと、スクロール可能な要素には非常によくある状況があります。通常、スクロールすると、要素が現...

JS 手ぶれ補正機能の実装と使用シナリオ

目次1. 手ぶれ補正機能とは何ですか? 1. なぜ手ぶれ補正機能が必要なのでしょうか? 2. 手ぶれ...

CSS フレキシブルレイアウト FLEX、メディアクエリ、モバイルクリックイベントの実装

フレックスレイアウト定義: Flexレイアウトの要素は、 Flex 、または略して「コンテナー」と呼...

同じレベルの要素で Position:fixed と margin-top を一緒に使用する場合の CSS の問題

問題の説明CSS を使用して上部の固定効果を実現したいと思います。 margin-top と pos...

MySQLカバーインデックスの使用例

カバーインデックスとは何ですか?クエリで使用されるすべてのフィールドを含むインデックスを作成すること...

レスポンシブレイアウトについて知っておくべきこと

1. はじめにレスポンシブ Web デザインにより、Web サイトは複数のデバイスと複数の画面に同時...

ウェブページの読み込み進捗状況バーの詳細な説明(推奨)

(Web ページの読み込み中に、コンテンツが多すぎて読み込みと待機が続くことがあります。このとき、...

CSS のサイズ単位についての簡単な説明

ブラウザの互換性はどんどん良くなってきています。モバイル端末は基本的にすべてWebKitベースです。...