事前に声明:
割り当て、初期化し、作成します。先にプロセスの3つの文があります。
console.log(X); // 未定義の 関数XXX(){}; VAR X = 10 ; // 等価 するvar X =不定; // 作成し、初期化 関数XXX(){}、 X = 10; // 割り当て
しかし、唯一の割り当てを作成しないでみましょう:
console.log(X); // 与えられた LET X = 10 ; 関数XXX(){}; // と等価 LET Xを、 関数 XXX(){}。
第二に、プロトタイプ
通常、我々はこのようなオブジェクトを作成します。
VARプレーン= 関数(){ この .nameの= '平面' 。 } VARの平面= 新しいプレーン()。 plane.name = 'plane1';
新しいだけ離れた外側の一例は、またによりクローニングすることができます。
VaRの plane2 = Object.create(平面)
私たちはJavaScriptで遭遇する各オブジェクトは、実際のObject.prototypeがその原型である、のObject.prototypeクローンオブジェクトから来ています。new演算子プロセスでオブジェクトを作成するには、実際には、唯一のオブジェクトは、その後、他のいくつかの追加の作業工程をのObject.prototypeのクローンを作成します。
オブジェクトへのJavaScriptが__proto__を提供し、オブジェクトの__proto__デフォルト属性のコンストラクタには、プロトタイプオブジェクトを指しています:
関数動物(名){ この .nameの= 名前。 } VARの犬= 新しい動物()。 console.log(犬.__ proto__ === Animal.prototype)。 // 真
第三に、静的メソッド
静的メソッドで定義されたディンタイ、静的メソッドを直接呼び出すことができます。
動物{クラス spaeak(){ 戻り これを; } 静的(EAT){ 戻り これを; } } Animal.speak(); // エラー Animal.eat(); // 直接呼び出し