JavaScript Object および Function_javascript スキルの使用
今日の JavaScript は、かつてのように Web ページ上でおもちゃとして実行される派手なスクリプトではなくなりました。 JavaScript は徐々に標準化され、真のプログラミング言語として Web 開発で広く使用されています。したがって、ますます多くの人がこのスクリプト言語を再認識し始めており、JavaScript の中核となるアイデアと実装原則を常に探求していますが、その過程で非常にややこしい問題に遭遇しています。この記事では、開発者や JavaScript を初めて使用する人を混乱させやすい一般的な問題、つまり 2 つのコア コンストラクターである Object と Function の関係について説明することに重点を置いています。 instanceof 演算子の戻り結果を見て混乱するのはなぜですか?この記事では一つずつお伝えしていきます。しかしその前に、JavaScript の概念と基本的な操作メカニズムを理解する必要があります。
JavaScript のオブジェクト アーキテクチャ
実際、JavaScript 言語では、コア アーキテクチャ全体が 2 つのコンストラクター (Object と Function) を中心に構築されています。 mollypages.org から JavaScript オブジェクト アーキテクチャ図を引用して説明します。
instanceof 演算子
instanceof は、次のような二項演算子です: Ainstanceof B。そのうち、A は正当な JavaScript オブジェクトでなければならず、B は正当な JavaScript オブジェクトである必要があります。 JavaScript 関数の判定プロセスは次のとおりです:
オブジェクト A のプロトタイプ チェーンに関数 B が見つかった場合、instanceof 演算子は true を返し、それ以外の場合は false を返します。
たとえば、次のコードです。
// 指定された関数がコンストラクターとしてオブジェクトのプロトタイプ チェーンで見つかった場合は true を返します。alert({} instanceof Object);
JavaScript プロトタイプチェーンメカニズム
については、ここで簡単に要約します。このトピックについて説明するには多くのスペースが必要となるため、この記事ではこの概念を引用するだけであり、メカニズムについて詳しく説明することに焦点を当てていません。
JavaScript のプロトタイプは関数と密接に関連しています。各関数にはデフォルトでプロトタイプと呼ばれる属性があり、関数と new 演算子を通じて生成されたすべてのオブジェクトには属性 __proto__ があり、このプロパティはプロトタイプ プロパティへの参照を保持します。それを作成したコンストラクターの。この __proto__ オブジェクトは、プロトタイプ チェーンを実装するコア オブジェクトです。 JavaScript はオブジェクト指向プログラミング言語であり、その継承機能は実際にはプロトタイプ チェーン メカニズムを通じて実装されます。同時に、instanceof 演算子もプロトタイプ チェーンでのサポートが必要です。例を示します。
コード
/ / カスタム コンストラクターを作成します Foo
function Foo() {
}
// Foo のインスタンスを作成します
var foo = new Foo(); / foo は Foo のインスタンスです
alert(foo instanceof Foo);// true
//
// Foo.prototype は Object のインスタンスであるため、foo も Object のインスタンスです。 // インタプリタはプロトタイプ チェーンを通じてコンストラクター
// を見つけます。
alert(foo instanceof Object);// true
// オブジェクトのプロトタイプ チェーン foo
//
/ / __proto__ __proto__ __proto__
// foo -----------> Foo.prototype -----------> Object.prototype ---- ---- ---> null
// しかし、
// foo の
// プロトタイプ チェーンで Function.prototype が見つからないため、foo は Function のインスタンスではありません。
alert (foo instanceof Function);// false
// ただし、そのコンストラクター Foo は
// Function のインスタンスです。
alert(Foo instanceof Function);// true
// オブジェクトのインスタンスでもあります
alert(Foo instanceof Object);// true
// コンストラクター Foo のプロトタイプ チェーン
//
// __proto__ __proto__ __proto__
// Foo -----------> Function.prototype -----------> Object.prototype ----------- > null
上記のコードの分析から、任意のオブジェクトのプロトタイプ チェーンは Object.prototype に遡ることができるという結論を引き出すのは難しくありません。これが、JavaScript のすべてのオブジェクトが Object.prototype を継承していると言われる理由です。オブジェクトの理由。
関数のオブジェクトのインスタンスとオブジェクトの関数のインスタンスの両方が true を返すのはなぜですか?
オブジェクト、関数、配列などはすべてコンストラクター「関数」と呼ばれ、すべて関数です。すべての関数はコンストラクター Function のインスタンスです。プロトタイプ チェーン メカニズムの観点から見ると、これは、すべての関数が、プロトタイプ チェーンを通じて Function コンストラクターを作成した、構築されたプロトタイプ Function.protorype オブジェクトを見つけることができることを意味します。
alert(Objectinstanceof Function) ;// return true
同時に、Function.prototype はオブジェクトであるため、そのコンストラクターは Object です。プロトタイプ チェーン メカニズムの観点からは、すべての関数がプロトタイプ チェーンを通過できることを意味します。構築されたプロトタイプ Object.prototype を見つけます。
alert(Functioninstanceof Object);// return true
興味深いのは、プロトタイプチェーンメカニズムの分析を通じて、instanceof で何を行うかに基づいています。結論を導くのは難しくありません。関数instanceof Functionはtrueを返します。原理は同じです
1. 関数はコンストラクターであるため、関数オブジェクトです
2. 関数オブジェクトは関数によって作成されます。コンストラクター さて、プロトタイプ チェーンのメカニズムは次のように説明されます。 Function.prototype
が関数オブジェクトのプロトタイプ チェーンに存在します。 3.instanceof は、プロトタイプ チェーン内の各ノードを検索します。 Function のプロトタイプ チェーン、Return true
したがって、次のコードは true を返します
alert(Functioninstanceof Function);// それでも true
結論
1.つまり、すべてのオブジェクトのプロトタイプ チェーンのルート ノードは Object.prototype
2 です。JavaScript でのプロトタイプ チェーンの仕組みを理解することは非常に重要です。一度マスターすれば、オブジェクトがどれほど複雑であっても、いつでも簡単に倒すことができます。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。

WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

WebSocket と JavaScript を使用してオンライン予約システムを実装する方法 今日のデジタル時代では、ますます多くの企業やサービスがオンライン予約機能を提供する必要があります。効率的かつリアルタイムのオンライン予約システムを実装することが重要です。この記事では、WebSocket と JavaScript を使用してオンライン予約システムを実装する方法と、具体的なコード例を紹介します。 1. WebSocket とは何ですか? WebSocket は、単一の TCP 接続における全二重方式です。

JavaScript と WebSocket を使用してリアルタイム オンライン注文システムを実装する方法の紹介: インターネットの普及とテクノロジーの進歩に伴い、ますます多くのレストランがオンライン注文サービスを提供し始めています。リアルタイムのオンライン注文システムを実装するには、JavaScript と WebSocket テクノロジを使用できます。 WebSocket は、TCP プロトコルをベースとした全二重通信プロトコルで、クライアントとサーバー間のリアルタイム双方向通信を実現します。リアルタイムオンラインオーダーシステムにおいて、ユーザーが料理を選択して注文するとき

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 はじめに: 今日、天気予報の精度は日常生活と意思決定にとって非常に重要です。テクノロジーの発展に伴い、リアルタイムで気象データを取得することで、より正確で信頼性の高い天気予報を提供できるようになりました。この記事では、JavaScript と WebSocket テクノロジを使用して効率的なリアルタイム天気予報システムを構築する方法を学びます。この記事では、具体的なコード例を通じて実装プロセスを説明します。私たちは

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

使用法: JavaScript では、insertBefore() メソッドを使用して、DOM ツリーに新しいノードを挿入します。このメソッドには、挿入される新しいノードと参照ノード (つまり、新しいノードが挿入されるノード) の 2 つのパラメータが必要です。

JavaScript で HTTP ステータス コードを取得する方法の紹介: フロントエンド開発では、バックエンド インターフェイスとの対話を処理する必要があることが多く、HTTP ステータス コードはその非常に重要な部分です。 HTTP ステータス コードを理解して取得すると、インターフェイスから返されたデータをより適切に処理できるようになります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法と、具体的なコード例を紹介します。 1. HTTP ステータス コードとは何ですか? HTTP ステータス コードとは、ブラウザがサーバーへのリクエストを開始したときに、サービスが
