JavaScript の通常の関数にはプロトタイプがあります。 JavaScript では、どの関数にもプロトタイプ属性があり、その関数のプロトタイプ オブジェクトを指します。プロトタイプの実際の機能は、クラス (関数) に「パブリック領域」を提供することであり、このパブリック領域で宣言されたプロパティとメソッドは、このクラスを通じて作成されたすべてのオブジェクトからアクセスできるため、メモリ消費量を削減できます。
このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。
関数のプロトタイプ属性 (プロトタイプ)
1. 関数を作成する限り、関数は関数のプロトタイプ オブジェクトを指すプロトタイプ属性を自動的に取得します。
fn 関数を作成すると、関数のプロトタイプ オブジェクトであるプロトタイプ属性が自動的に取得され、プロトタイプ オブジェクトがコンストラクター属性を持つことがわかります。この属性は、関数自体 (fn) を指します。
プロトタイプの実際の機能は、クラス (関数) に [パブリック領域] を提供することであり、このパブリック領域で宣言されたプロパティとメソッドには、このクラスを通じて作成されたすべてのオブジェクトからアクセスできます。メモリ消費量を削減します。
2. 関数のプロトタイプ属性はオブジェクトです。
typeof fn.prototype //"object"
プロトタイプ属性はオブジェクトです。したがって、通常のオブジェクトの形式で対応する属性とメソッドにアクセスすることに加えて、どのようにアクセスするか他にアクセスできますか? 毛織物ですか?答えは、関数が 'コンストラクター' として機能する場合、'new キーワードを使用してインスタンスを作成する'、プロトタイプ属性内の対応するプロパティとメソッドにアクセスするためです
function Fn(){ this.name = "CJF"} Fn.prototype.name="CJF1"; Fn.prototype.getName = function(){ return this.name; }var f = new Fn(); f.name;//输出 'CJF'f.getName(); //输出 'CJF'Fn.prototype.getName();//输出 'CJF1'
Yes 関数がコンストラクターとしてインスタンスを作成すると、そのインスタンスはプロトタイプ オブジェクトのメソッドを呼び出すことができることがわかります。このとき、これは f を指します。インスタンス f は、次の属性を持っているため、name 属性にアクセスします。独自の name 属性があり、アクセスできるため、出力 'CJF' には name 属性がありません。その場合、スクリプト エンジンは、現在のオブジェクトの作成に使用された コンストラクターのプロトタイプ をクエリします (アクセスするのと同等です)。 f.constructor.prototype) を検索し、コンストラクター プロトタイプ オブジェクトを見つけます。name 属性は 'CJF1' を返します。 (f とそのプロトタイプ オブジェクトは両方とも name 属性を持ち、オブジェクト自身の属性はプロトタイプ オブジェクトよりも高い優先順位を持ちます)
function Fn(){} Fn.prototype.name="CJF1"; Fn.prototype.getName = function(){ return this.name; }var f = new Fn(); f.name;//输出 'CJF1'f.getName(); //输出 'CJF1'Fn.prototype.getName();//输出 'CJF1'
3. プロトタイプ プロトタイプの「リアルタイム」 object
JavaScript のすべてのオブジェクトは 参照によって渡されるため、新しい関数インスタンスを作成するたびに、独自のプロトタイプのコピーがありません。つまり、プロトタイプ オブジェクトはすべてのインスタンスによって共有されます。関数のプロトタイプ オブジェクトを変更すると、関数によって作成されたすべてのインスタンス オブジェクトのプロトタイプもそれに応じて変更されます。
function Fn(){} Fn.prototype.name="CJF1"; Fn.prototype.getName = function(){ return this.name; }var f = new Fn(); f.name;//输出 'CJF1'f.getName(); //输出 'CJF1'f.getAge();//此时没有实例f并没有getAge方法 浏览器会报错 Uncaught TypeError: f.getAge is not a function//加上后面的就可以正常访问了Fn.prototype.getAge = function(){ return 20; } f.getAge();//204. プロトタイプ チェーン
オブジェクト自身のプロパティとプロトタイプ プロパティが同じ場合、オブジェクト自身のプロパティの優先順位がプロトタイプ プロパティの優先順位よりも高いことを学びましたが、オブジェクトそれ自体にはアクセスしたいプロパティやメソッドがない場合、現在のオブジェクトを作成したコンストラクターの
プロトタイプ (プロトタイプ チェーン) に沿ってアクセスするプロパティを検索します。見つかったら、対応するプロパティが見つかります。対応するプロパティが見つからない場合は、unknown が返されますが、見つかりませんでした。メソッドにアクセスするとエラーが報告されます(そのようなメソッドは存在しないが、メソッドを実行する必要があるため、エラーが報告されます)。
function Fn(){} Fn.prototype.name="CJF1"; Fn.prototype.getName = function(){ return this.name; }var f = new Fn(); f.constructor.prototype == Fn.prototype //true
_proto_ (前後 2 つのアンダースコア) が、オブジェクト、このオブジェクトは Fn.prototype です。インスタンス f が持たない属性またはメソッドにアクセスするときは、この 秘密リンク(_proto_) をたどります。アクセスしたいものを検索し、常に Object.prototype を見つけます。見つかったら、対応するプロパティが返されます。対応するプロパティが見つからない場合は、unknown が返されます。ただし、アクセスするメソッドが見つからない場合は、エラーが報告されます。この秘密のリンクは学習とデバッグのみに使用され、実際の開発には使用されません (Object.getPrototypeOf メソッドを使用することをお勧めします)。
_proto__ = null が表示されます。
【関連する推奨事項:JavaScript ビデオ チュートリアル 、プログラミング ビデオ 】
以上が通常の JavaScript 関数にはプロトタイプはありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

HTMLとReactは、JSXを介してシームレスに統合して、効率的なユーザーインターフェイスを構築できます。 1)JSXを使用してHTML要素を埋め込み、2)仮想DOMを使用してレンダリングパフォーマンスを最適化し、3)コンポーネントを通じてHTML構造を管理およびレンダリングします。この統合方法は直感的であるだけでなく、アプリケーションのパフォーマンスを向上させます。

React Reactは、状態および小道具を介してデータを効率的にレンダリングし、合成イベントシステムを介してユーザーイベントを処理します。 1)Counterの例など、UseStateを使用して状態を管理します。 2)イベント処理は、ボタンクリックなどのJSXに関数を追加することにより実装されます。 3)トドリストコンポーネントなどのリストをレンダリングするには、重要な属性が必要です。 4)フォーム処理の場合、FormコンポーネントなどのuseStateおよびe.preventdefault()。

Reactは、HTTP要求を介してサーバーと対話し、データを取得、送信、更新、削除します。 1)ユーザー操作はイベントをトリガーします。2)HTTP要求を開始する、3)サーバーの応答をプロセス、4)コンポーネントのステータスと再レンダリングを更新します。

Reactは、コンポーネント開発と仮想DOMを通じて効率を向上させるユーザーインターフェイスを構築するためのJavaScriptライブラリです。 1。コンポーネントとJSX:JSX構文を使用してコンポーネントを定義して、コードの直感性と品質を高めます。 2。仮想DOMおよびレンダリング:仮想DOMおよびDIFFアルゴリズムを介してレンダリングパフォーマンスを最適化します。 3。状態管理とフック:UseStateやUseefectなどのフックは、状態管理と副作用の取り扱いを簡素化します。 4。使用例:基本形式から高度なグローバルな州管理まで、Contextapiを使用します。 5.一般的なエラーとデバッグ:不適切な状態管理とコンポーネントの更新の問題を避け、ReactDevtoolsを使用してデバッグします。 6。パフォーマンスの最適化と最適性

ReactisaFrontendLibrary、focusedonbuildinguserinterfaces.itmanagesUistateandupdateSeSefiedlyusingingingingualdod、およびinteractswithbackendservicesviaapisfordatahandling、butdoesnotprocessorstoredatoredaitaits

ReactをHTMLに組み込み、従来のHTMLページを強化または完全に書き換えることができます。 1)Reactを使用するための基本的な手順には、HTMLにルートDIVを追加し、ReactDom.Render()を介してReactコンポーネントをレンダリングすることが含まれます。 2)より高度なアプリケーションには、UseStateを使用して状態を管理し、カウンターやTo Doリストなどの複雑なUI相互作用を実装することが含まれます。 3)最適化とベストプラクティスには、コードセグメンテーション、怠zyな読み込み、React.memoとusememoを使用してパフォーマンスを向上させることが含まれます。これらの方法を通じて、開発者はReactの力を活用して、動的で応答性の高いユーザーインターフェイスを構築できます。

Reactは、最新のフロントエンドアプリケーションを構築するためのJavaScriptライブラリです。 1.パフォーマンスを最適化するために、コンポーネントおよび仮想DOMを使用します。 2。コンポーネントJSXを使用して、データを管理するために定義、状態、および属性を定義します。 3.フックはライフサイクル管理を簡素化します。 4. Contextapiを使用して、グローバルステータスを管理します。 5.一般的なエラーには、デバッグステータスの更新とライフサイクルが必要です。 6。最適化手法には、メモ、コード分割、仮想スクロールが含まれます。

Reactの未来は、究極のコンポーネント開発、パフォーマンスの最適化、および他のテクノロジースタックとの深い統合に焦点を当てます。 1)Reactは、コンポーネントの作成と管理をさらに簡素化し、究極のコンポーネント開発を促進します。 2)特に大規模なアプリケーションでは、パフォーマンスの最適化が焦点になります。 3)Reactは、開発エクスペリエンスを改善するために、GraphQLやTypeScriptなどのテクノロジーと深く統合されます。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

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