1.概要
(Javaなど)の典型的なOOP言語では、クラスの概念があり、クラスはオブジェクトテンプレートのインスタンスである、オブジェクトはクラスにあるが、ES6前に、JSとクラスの概念を導入しませんでした。
ES6、フルネームECMAScript6.0,2015.06脂肪バージョン。今、ブラウザのJavaScriptがES5バージョンですが、ブラウザの高いバージョンのほとんどはまた、ES6をサポートしていますが、ES6の特徴と機能の一部のみ。
ES6のための前に、クラスベースのオブジェクトが作成されていないが、特別な機能を持つオブジェクトとその特性を定義するために構築機能と呼ばれます。
一般的なオブジェクトは、次の3つの方法のいずれかになります。
1.オブジェクトリテラル
2.newオブジェクト()
3.カスタムコンストラクタ
2.コンストラクタ
コンストラクタは、主に初期値が割り当てられ、すなわちオブジェクト部材が、それは常に新しいと一緒に使用され、オブジェクトを初期化するために使用される、特殊な関数です。私たちは、その関数にカプセル化され、抽出されたいくつかのパブリックオブジェクトのプロパティとメソッドを置くことができます。
コンストラクタを使用する場合にJSでは、我々は以下の点に注意してください。
1.コンストラクタはその最初の文字大文字でなければならないオブジェクトの特定の型を作成するために使用され
2.コンストラクタは、新しいと一緒に使用することは理にかなっています
新しい実行時に、4つの物事を行うだろう。
メモリ内の新しい空のオブジェクトを作成します。1.
新しいオブジェクトにこのポイントを作る2。
3.コンストラクタ内のコードは、プロパティおよびメソッドを追加するための新しいオブジェクトを実行します。
4.戻り、新しいオブジェクト(それはコンストラクタ関数を返す必要はありません)
3.静的およびインスタンスメンバー
静的メンバー:自体は静的メンバーのみコンストラクタ自体がアクセスすることができると呼ばれるコンストラクタでメンバーを追加します。// Star.sex = 'M';
部材の例:コンストラクタ内のメンバーがこのインスタンス部材を介して作成するために呼び出され、インスタンスメンバーは、オブジェクトのインスタンスによってアクセスすることができます。// this.uname =のuname。
4.プロトタイププロトタイプオブジェクトのコンストラクタ
コンストラクタメソッドは便利ですが、問題は(新しいメモリ内の新しいエリアを開きます限り)メモリの無駄があります
JavaScriptは、各コンストラクタは、このプロトタイプはオブジェクトであることを別のオブジェクト、ノートを指し、prototypeプロパティを持っていることを提供しています。このオブジェクトのすべてのプロパティとメソッドは、コンストラクタによって所有されます。
用途:一般的な方法は、直接すべてのオブジェクトインスタンスは、このメソッドを共有できるようにすることを、プロトタイプオブジェクトに定義することができます。
プロトタイプ:また、プロトタイププロトタイプオブジェクトとして知られているオブジェクト、。
プロトタイプの役割:共有方法。
概要:通常の状況下では、コンストラクタ関数への公共財産の私達の定義は、公共の方法は、我々はプロトタイプオブジェクト本体を置きます。
オブジェクトのプロトタイプ__proto__
オブジェクトは、属性__proto__コンストラクタのプロトタイププロトタイプオブジェクト、あなたは__proto__プロトタイプが存在するため、オブジェクトは、コンストラクタのプロトタイププロトタイプオブジェクトを使用することができますなぜオブジェクトのプロパティとメソッドにポイントを持っています。
__proto__オブジェクトプロトタイプとプロトタイプは、プロトタイプオブジェクトと等価です
__proto__オブジェクトのプロトタイプ意義オブジェクト検索メカニズム、または経路の方向性を提供することにあるが、それは、非標準のプロパティで実際の開発ので、このプロパティを使用することはできません、内部のプロトタイプオブジェクトのプロトタイプにそれだけでポイント
6.コンストラクタコンストラクタ
それはバックコンストラクタ自体を指すためプロパティconstructorプロパティを有するオブジェクトのプロトタイプ(__proto__)とコンストラクタ(プロトタイプ)プロトタイプオブジェクトは、コンストラクタ我々は、コンストラクタを呼び出します。
コンストラクタは、主に、元のプロトタイプオブジェクトのコンストラクタに再ポインティングを可能にするコンストラクタへのオブジェクト参照を記録するために使用されます。