JS の __proto__ とプロトタイプの違い
__proto__ と prototype は、JS のプロトタイプに関連する 2 つの属性であり、機能が少し異なります。この記事では、2 つの違いを詳しく紹介して比較し、対応するコード例を示します。
まずは、その意味と使い方を理解しましょう。
proto
__proto__ は、オブジェクトのプロトタイプを指すオブジェクトの組み込みプロパティです。カスタム オブジェクト、組み込みオブジェクト、関数オブジェクトなど、すべてのオブジェクトには __proto__ 属性があります。 __proto__ 属性を通じて、オブジェクトのプロトタイプ チェーンにアクセスして操作できます。
例を見てみましょう:
let obj = {}; console.log(obj.__proto__); // 输出:Object {} let arr = []; console.log(arr.__proto__); // 输出:Array [] function func() {} console.log(func.__proto__); // 输出:[Function]
上記のコードでは、空のオブジェクト obj を作成し、その __proto__ 属性にアクセスしました。ご覧のとおり、obj.__proto__ は Object{} オブジェクトを指します。同様に、空の配列 arr も作成し、その __proto__ 属性にアクセスすると、arr.__proto__ が Array[] オブジェクトを指すようになります。関数オブジェクト func の場合、その __proto__ は [Function] オブジェクトを指します。
要約すると、__proto__ 属性はオブジェクトのプロトタイプを指すために使用され、これを通じてプロトタイプ チェーンにアクセスして操作できます。
prototype
prototype は関数オブジェクトの一意の属性であり、プロトタイプ オブジェクトを指します。すべての関数オブジェクトにはプロトタイプ属性がありますが、これは関数がコンストラクターとして使用される場合にのみ意味を持ちます。
例を見てみましょう:
function Person() {} console.log(Person.prototype); // 输出:Person {}
上記のコードでは、Person 関数オブジェクトを定義し、そのプロトタイプ属性にアクセスします。ご覧のとおり、Person.prototype は Person{} オブジェクトを指します。
プロトタイプ属性の主な役割は、コンストラクター モードでインスタンス オブジェクトのプロトタイプ チェーンを構築することです。コンストラクターを使用してオブジェクトを作成する場合、その __proto__ 属性はコンストラクターのプロトタイプ属性を指します。
let person = new Person(); console.log(person.__proto__ === Person.prototype); // 输出:true
上記のコードでは、person コンストラクターを使用してオブジェクト person を作成します。 person.__proto__ が person.prototype を指していることがわかります。
違いとつながり
__proto__ とプロトタイプはオブジェクトのプロトタイプに関連しており、それらの間のつながりと違いは次のとおりです:
- __proto__ はインスタンスですobject 属性はオブジェクトのプロトタイプを指すために使用され、prototype はコンストラクターの属性であり、コンストラクターのプロトタイプ オブジェクトを指すために使用されます。
- __proto__ は、オブジェクトのプロトタイプ チェーンを読み取ってアクセスする属性であり、インスタンス オブジェクト上で直接アクセスできます。prototype はコンストラクターの属性であり、コンストラクター内でのみアクセスできます。
- __proto__ は Object.setPrototypeOf() または直接割り当てを通じて変更できますが、プロトタイプは関数 name.prototype を通じてコンストラクター内でのみ変更できます。
- __proto__ は非標準属性であり、一部のブラウザでのみサポートされています。prototype は標準属性であり、すべてのオブジェクトと関数がそれを持ちます。
次のコード例は、この 2 つの違いと関係をさらに説明するために使用されます。
function Animal() {} Animal.prototype.eat = function() { console.log("Animal is eating"); }; function Dog() {} Dog.prototype = Object.create(Animal.prototype); Dog.prototype.bark = function() { console.log("Dog is barking"); }; const dog1 = new Dog(); dog1.eat(); // 输出:Animal is eating dog1.bark(); // 输出:Dog is barking console.log(dog1.__proto__ === Dog.prototype); // 输出:true console.log(Dog.prototype.__proto__ === Animal.prototype); // 输出:true
上記のコードでは、継承を定義することによって、Animal コンストラクターと Dog コンストラクターを作成します。関係。 __proto__ 属性とプロトタイプ属性を通じて、オブジェクトのプロトタイプ チェーンにアクセスし、それらの間の接続を証明できます。
要約すると、__proto__ とプロトタイプはどちらも JS のプロトタイプに関連しますが、機能と使用法が異なります。それらの違いを理解することは、JS のプロトタイプのメカニズムをより深く理解し、コードを記述するときにそれらをより柔軟に利用するのに役立ちます。
以上がJS の __proto__ とプロトタイプの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホット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)

ホットトピック











JS と Baidu Map を使用してマップ パン機能を実装する方法 Baidu Map は広く使用されている地図サービス プラットフォームで、Web 開発で地理情報、位置情報、その他の機能を表示するためによく使用されます。この記事では、JS と Baidu Map API を使用してマップ パン機能を実装する方法と、具体的なコード例を紹介します。 1. 準備 Baidu Map API を使用する前に、Baidu Map Open Platform (http://lbsyun.baidu.com/) で開発者アカウントを申請し、アプリケーションを作成する必要があります。作成完了

株式分析に必須のツール: PHP および JS でローソク足チャートを描画する手順を学びます。特定のコード例が必要です。インターネットとテクノロジーの急速な発展に伴い、株式取引は多くの投資家にとって重要な方法の 1 つになりました。株価分析は投資家の意思決定の重要な部分であり、ローソク足チャートはテクニカル分析で広く使用されています。 PHP と JS を使用してローソク足チャートを描画する方法を学ぶと、投資家がより適切な意思決定を行うのに役立つ、より直感的な情報が得られます。ローソク足チャートとは、株価をローソク足の形で表示するテクニカルチャートです。株価を示しています

顔の検出および認識テクノロジーは、すでに比較的成熟しており、広く使用されているテクノロジーです。現在、最も広く使用されているインターネット アプリケーション言語は JS ですが、Web フロントエンドでの顔検出と認識の実装には、バックエンドの顔認識と比較して利点と欠点があります。利点としては、ネットワーク インタラクションの削減とリアルタイム認識により、ユーザーの待ち時間が大幅に短縮され、ユーザー エクスペリエンスが向上することが挙げられます。欠点としては、モデル サイズによって制限されるため、精度も制限されることが挙げられます。 js を使用して Web 上に顔検出を実装するにはどうすればよいですか? Web 上で顔認識を実装するには、JavaScript、HTML、CSS、WebRTC など、関連するプログラミング言語とテクノロジに精通している必要があります。同時に、関連するコンピューター ビジョンと人工知能テクノロジーを習得する必要もあります。 Web 側の設計により、次の点に注意してください。

PHP と JS を使用して株のローソク足チャートを作成する方法。株のローソク足チャートは、株式市場で一般的なテクニカル分析グラフィックです。始値、終値、最高値、株価などのデータを描画することで、投資家が株式をより直観的に理解するのに役立ちます。株価の最低価格、価格変動。この記事では、PHP と JS を使用して株価のローソク足チャートを作成する方法を、具体的なコード例とともに説明します。 1. 準備 開始する前に、次の環境を準備する必要があります。 1. PHP を実行するサーバー 2. HTML5 および Canvas をサポートするブラウザー 3

インターネット金融の急速な発展に伴い、株式投資を選択する人がますます増えています。株式取引では、ローソク足チャートは一般的に使用されるテクニカル分析手法であり、株価の変化傾向を示し、投資家がより正確な意思決定を行うのに役立ちます。この記事では、PHP と JS の開発スキルを紹介し、株価ローソク足チャートの描画方法を読者に理解してもらい、具体的なコード例を示します。 1. 株のローソク足チャートを理解する 株のローソク足チャートの描き方を紹介する前に、まずローソク足チャートとは何かを理解する必要があります。ローソク足チャートは日本人が開発した

JS と Baidu Maps を使用して地図ポリゴン描画機能を実装する方法 現代の Web 開発において、地図アプリケーションは一般的な機能の 1 つになっています。地図上にポリゴンを描画すると、ユーザーが表示および分析できるように特定のエリアをマークするのに役立ちます。この記事では、JS と Baidu Map API を使用して地図ポリゴン描画機能を実装する方法と、具体的なコード例を紹介します。まず、Baidu Map API を導入する必要があります。次のコードを使用して、Baidu Map API の JavaScript を HTML ファイルにインポートできます。

JS と Baidu Maps を使用してマップ クリック イベント処理を実装する方法の概要: Web 開発では、地理的位置と地理情報を表示するためにマップ関数を使用することが必要になることがよくあります。マップ上のクリック イベント処理は、マップ機能の一般的に使用される重要な部分です。この記事では、JS と Baidu Map API を使用して地図のクリック イベント処理機能を実装する方法と、具体的なコード例を紹介します。手順: Baidu Map の API ファイルをインポートします。まず、Baidu Map API のファイルを HTML ファイルにインポートします。これは、次のコードによって実現できます。

JS と Baidu Maps を使用してマップ ヒート マップ機能を実装する方法 はじめに: インターネットとモバイル デバイスの急速な発展に伴い、マップは一般的なアプリケーション シナリオになりました。視覚的な表示方法として、ヒート マップはデータの分布をより直観的に理解するのに役立ちます。この記事では、JS と Baidu Map API を使用してマップ ヒート マップ機能を実装する方法と、具体的なコード例を紹介します。準備作業: 開始する前に、次の項目を準備する必要があります: Baidu 開発者アカウント、アプリケーションの作成、対応する AP の取得
