JavaScriptの世界では、オブジェクトの操作が拡大し、オブジェクトを作成することによって継承することができ、より柔軟であるオブジェクト、およびオブジェクトのプロパティが極めて容易拡大することです。
したがって、このようにすることができ、プロセスのオブジェクトのインスタンスを作成します。
機能人(名前、年齢){ この .nameの= 名前; この .age = 年齢; console.log(この); // 人{名: "ネオ"、年齢: "23"} //は、これを返します。默认隐藏 } VARの P1 = 新しい人( 'ネオ'、 '10' )。 console.log(p1.name)。 それはと同等です。 機能人(名前、年齢){ この .nameの= 名前; この .age = 年齢; console.log(この); // ウィンドウが 返さ これを。 } VaRの P1 = 新しいオブジェクト(); // VAR P1 = {} 、P1 =人( 'ネオ'、 '23' ); console.log(p1.name)。
新しいキーワードを何をします
JavaScriptでは、新しいキーワードを使用した後、それは次の4つのことをやって意味します:
新しいオブジェクトを作成し、オブジェクトは、オブジェクトのタイプです。
この新しい内部オブジェクトのセット、及びアクセシビリティ[[プロトタイプ]]プロパティコンストラクタ(コンストラクタprototype.construtor手段は指さ)セット。
コンストラクタは、このキーワードが記載されているときに実行され、オブジェクトの新たに作成された属性である;(コンストラクタは「プロトタイプ」を返さない場合を除く)新しく作成されたオブジェクトを返します。
ときに、新しいオブジェクトを呼び出す場合、正常に新しいオブジェクトを作成した後、プロパティを持たない、JavaScriptが対応するコンテンツを見つけるために、層によって、プロトタイプチェーンストッパ層に拡張されます。これは、従来の「クラスの継承」に似ています。
注:機能に文字通りの意味(機能のデフォルトに基づいて、Object.createを使用し、新たなキーワードを使用するなど、オブジェクトが作業するために作成された場合にのみ、プロパティ[[プロトタイプ]]に関連する第二の点に言及しました。プロトタイプ、デフォルトNumber.prototypeを、など)によってデジタル。それだけでObject.getPrototypeOf(SomeObjectの)で読み取ることができます。設定または値を読み取るための他の方法はありません。
ユーザー定義オブジェクトを作成すると、2つの手順が必要です。
機能を書き込むことによって、オブジェクト・タイプを定義します。
新しいを通じてオブジェクトのインスタンスを作成します。
オブジェクト型を作成し、関数名や属性を指定する必要性を作成し、オブジェクトの属性は、次の例を参照して、他のオブジェクトを指すことがあります。
コードがある場合は、新しい人(...)の実行には、以下の事柄行われます。
新しいオブジェクトから継承さPerson.prototypeが作成されます。
指定されたパラメータは、コンストラクタの人を呼んで、これは新しく作成されたオブジェクトにバインドされています。新しい人は、コールのパラメータなしで引数リスト、人の状況を指定されていない新しい人()と同等です。
コンストラクタによって返されたオブジェクトは、新しい表現の結果です。ない、明示的にコンストラクタはオブジェクトを返す場合は、ステップ1で作成したオブジェクトが使用されています。(一般的には、コンストラクタは、ユーザが通常のオブジェクトの作成手順を上書きするオブジェクトを返すように選ぶことができる、値を返しません)