序文: 前回の記事では、JavaScript プロトタイプを紹介しました。プロトタイプ チェーンも一緒に紹介してみませんか? JavaScript におけるプロトタイプチェーンは難しいポイントであり、面接でも必ず聞かれる質問なので、今のうちに学んでおきましょう。 1. プロトタイプの関係
標準では 次に、Object コンストラクターとプロトタイプの関係をテストします。サンプル コードは次のとおりです。 // まず、Object はコンストラクタ関数なので、プロトタイププロパティを持ちます var result = Object.prototype console.log(result) // プロトタイプオブジェクトを取得する/* * プロトタイプオブジェクトのコンストラクタプロパティ -> それに関連付けられたコンストラクタを返します * Object.getPrototypeOf(result) はコンストラクタを指すプロトタイプを返します */ var result2 = 結果.コンストラクタ console.log(result2) // [関数: オブジェクト] var result3 = Object.getPrototypeOf(結果) console.log(結果3) // null 図を以下に示します。 2. プロトタイプチェーンプロトタイプチェーンが何であるかを理解しやすくなるように、まず次のコードを見てみましょう。 関数 Person(名前) { this.name = 名前 } var PP = Person.プロトタイプ var PPC = PP.コンストラクタ // コンストラクタと同じであることを確認する console.log(PPC === Person) // true // Person をインスタンス化する var person = new Person('Yiwan Zhou') // インスタンス化された Person オブジェクトのプロトタイプを取得します var pP = Object.getPrototypeOf(person) // インスタンス化されたPersonオブジェクトのプロトタイプがコンストラクタのプロトタイプを指していることを確認します console.log(pP === PP) // 真 実際、次のコードでテストされているように、すべてのコンストラクターはデフォルトで Object から継承されます。 // Person.prototype のプロトタイプを取得します。var PPP = Object.getPrototypeOf(PP) var OP = オブジェクト.プロトタイプ // 2つが等しいかどうかを確認します console.log(PPP === OP) // true 上記のコードはあまり明確ではないので、理解を助けるために図を描きました。 上の図の赤い線はプロトタイプ チェーンです。プロトタイプ チェーンは、最終結果が null (つまり 3. 結論2 つの図を使用して、JavaScript におけるプロトタイプの関係とプロトタイプ チェーンについて説明します。最後に、プロトタイプ チェーンの終点を紹介します。 これで、2 枚の画像で JavaScript のプロトタイプ チェーンを理解する方法についての記事は終了です。JavaScript プロトタイプ チェーンの詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: 一般的な DIV タスク (パート 2) — DIV のエディターとさまざまな DIY アプリケーションへの変換
>>: 幅の比率に応じて高さを変えるCSSを実装するいくつかの方法
外部一時テーブルCREATE TEMPORARY TABLE によって作成された一時テーブルは、外部...
1. はじめに(1)vw/vhの紹介使用する前に、vw と rem とは何か、その機能について簡単に...
エフェクトのスクリーンショット:実装コード:コードをコピーコードは次のとおりです。 <!DOC...
MySQL 論理アーキテクチャの概要他のデータベースと比較すると、MySQL は、そのアーキテクチャ...
目次導入始めるReact Nativeゲームエンジンの簡単な紹介React Nativeでスネークゲ...
目次序文方法1: 高コントラスト方法2: getBoundingClientRect() APIを使...
序文Js は現在最も一般的に使用されているコード操作言語であり、その中でも new 演算子は特によく...
序文Intel のハイパースレッディング テクノロジーにより、1 つの物理コア上で 2 つのスレッド...
この記事では、参考までに、簡単なタイマー機能を実装するためのvue.jsの具体的なコードを紹介します...
MySQL のロックロックは、並行環境におけるリソースの競合を解決する手段です。その中でも、楽観的並...
1. フォーム1. フォームの役割HTML フォームは、さまざまな種類のユーザー入力を受け取り、ユー...
HTML メールを送信するためのヒント: スタイルを使用してインライン CSS を記述する、使用する...
序文WeChat ミニプログラムは新しいオープン機能を提供します!ついにミニプログラムにHTMLペー...
えーっと、名前はただの推測です 2333序文これは練習用の CSS デモです。何か間違っている点があ...
MySQL データベースが Centos7 システムにインストールされており、オペレーティング シス...