まず、通常のコンストラクタ関数との差:に示すように。
- 資本と正常な機能を区別するためにコンストラクタ関数名の最初の文字
- コンストラクタは、新しいによって呼び出されます
- コンストラクタコンストラクタこの時点と共通ウィンドウ関数のこの時点
1つの VAR犬= 関数(){ // 通常の関数定義 2 はconsole.log( "私は通常の関数だ" ); 3 } 4。 犬(); // 通常の関数コール 5。 6。 // ///// ////////////////////////分割ライン//////////////////////// //////////// 7。 VARの犬= 関数(){ // コンストラクタ定義 8 はconsole.log( "私はコンストラクタ午前" ); 9 } 10 VARの犬= 新しい新犬(); // コンストラクタ呼び出し
第二に、プロトタイプのコンストラクタは:我々は(Dog.prototype)CONSOLE.LOGでき、このプロトタイプコンストラクタの犬を見て
1.私たちは犬を追加する他の手段を持っていない場合、我々はその出力コンソール{コンストラクタ:ƒ}を見つけます
コンストラクタは、すべてのコンストラクタメソッドは、我々は犬にこのコンストラクタにこのコンストラクタを見つけた出力を持っています
図1 にconsole.log(Dog.prototype); // 出力:{コンストラクタ:ƒ} 2 にconsole.log(Dog.prototype.constructor); // 犬コンストラクタ
以下の出力
私たちは、その後のメソッドを追加し、2はDog.prototypeによって、プロトタイプやコンストラクタを見ます
1 Dog.prototype.newStyle = 関数(){ 2 はconsole.log( "犬に新しいプロトタイプを追加する私の方法" ); 3。 } 4。 5。 にconsole.log(Dog.prototype); // {NewStyle:ƒ、コンストラクタ:ƒ} 6。 にconsole.log(Dog.prototype.constructor); // 犬コンストラクタ
以下のコンソール出力は、我々はそれを見つけるでしょう。この時点で、この新しい方法の多くの犬のプロトタイプ(試作品)を加え、コンストラクタと同じでした
このことから、我々は法とプロトタイプコンストラクタ自身(コンストラクタ)の体内に含まマウントプロトタイプのコンストラクタを学ぶことができます
第三に、インスタンスコンストラクタ
上記のコードの例は、犬の犬であります
そして、あなたは複数のインスタンスを持つことができますが、その内容は同じです。コンストラクタへのすべてのポイント
インスタンスは、コンストラクタの一部ではないかどうかを判断する方法
図1 にconsole.log(犬のinstanceof犬); // trueに//例を参照コンストラクタ犬犬の一部ではない 2 (DOG3にconsole.log instanceofの犬); // flase