Netscape によって発明されたこのアイデアは、関数型言語 Schema と Self から来ており、Python に少し近いものです。
特徴: 弱い型、動的分析、関数はオブジェクト、オブジェクトはプロトタイプに基づいています
最初の 3 つの機能は簡単に実行できます理解してください、そして最後のものは詳細に説明する必要があります。
最も基本的なベスト プラクティス: 大規模なプログラムで関数とオブジェクトを使用します。日記のプログラミングはしないでください。
オブジェクトを作成する最も簡単な方法は次のとおりです:
var myObject = new Object();
JavaScript オブジェクトは本質的に連想配列です。
ヒント: 関数を変数に割り当てる場合、functionName() と functionName の使用の違いに注意してください。前者は関数の結果を変数に渡しますが、後者は関数参照を変数に渡します。
JSON を使用して JavaScript オブジェクトを作成および変更できます。また、JavaScript は JSON によって作成されたオブジェクトを変更することもできます。
コンストラクター/クラス/プロトタイプ属性
JavaScriptにもオブジェクトとクラスの概念がありますが、組み込み継承の概念はありません。実際、すべての JavaScript オブジェクトは同じ基本クラスのインスタンスです。この基本クラスには、実行時にメンバー フィールドと関数をそれ自体に結び付ける機能があります。
安全な代替: プロトタイプ属性
プロトタイプは、OO 言語には同等のものが存在しない JavaScript オブジェクトのプロパティです。関数とプロパティはコンストラクター プロトタイプに関連付けることができます。その後、プロトタイプと new キーワードは連携して機能し、new を使用して関数を呼び出すと、関数プロトタイプのすべてのプロパティとメソッドが結果オブジェクトにアタッチされます。
Java コード
function MyObject(name, size){
this.name = 名前;
this.size = サイズ;
MyObject.prototype.tellsize = function(){
alert (「+this.name+」のサイズは「+this.size」です);
var myObj = new MyObject("tiddles", "7.5 メートル");
function MyObject(name, size){this.name = name;this.size = size;} MyObject.prototype.tellsize = function(){alert("size "+this.name+" の "+this.size);} var myObj = new MyObject("tiddles", "7.5 メートル");myObj.tellSize(); コンストラクターを宣言した後にのみプロトタイプを参照できることに注意してください。オブジェクトは、コンストラクターを呼び出す前にプロトタイプにアタッチされていたものを継承します。プロトタイプはコンストラクターの呼び出しの間に変更でき、関数だけでなくあらゆるものをプロトタイプにアタッチできます。 プロトタイプを使用して JavaScript オブジェクトのクラスのような動作を定義することは、安全で信頼できる方法です。 組み込みクラスの拡張 Web ブラウザでは、一部のコア クラスはプロトタイプ メカニズムを通じて拡張できます。 Java コード Array.prototype.indexOf = function(obj) { var result = -1; for (var i=0; i< this.length; i++) { if (this[i ]==obj){ result=i; } } } Array.prototype.indexOf = function(obj) {var result = -1;for (var i=0; i< this.length; i++) {if (this[i]==obj){result=i;break;}}} プロトタイプの継承 JavaScript にはネイティブ実装がありませんが、いくつかの優れた回避策があります。 JavaScript オブジェクトのリフレクション は、オブジェクトの型を検出するために使用されます イベント処理と関数コンテキスト Dom 要素のイベント ハンドラー関数をプログラムで宣言する場合、パラメータが割り当てられていない場合でも、 Dom 要素がクリックされたとき、関数呼び出しのパラメータとして Event オブジェクトが使用され、要素自体がコンテキスト オブジェクトとして使用されます。 イベント ハンドラー関数がアタッチされているモデル オブジェクトを参照するようにするには、次の 2 つの方法があります: 1. 名前を使用してモデルを参照します 2. モデルを Dom ノードにアタッチします