ホームページ >ウェブフロントエンド >フロントエンドQ&A >es6 の静的プロパティとインスタンス プロパティの違いは何ですか?
違い: 1. 静的プロパティはクラス自体のプロパティであり、クラス自体でのみ呼び出すことができますが、インスタンス プロパティはインスタンス オブジェクトのプロパティです; 2. インスタンス オブジェクトは静的プロパティを呼び出すことはできませんが、クラスは呼び出すことができますインスタンス プロパティ; 3. 静的属性の宣言メソッドは 1 つだけで、構文は「クラス名.属性名 = 値」ですが、インスタンス属性の宣言メソッドは複数あり、サンプル クラスでは「属性名 =」で定義されています。価値"。
このチュートリアルの動作環境: Windows 7 システム、ECMAScript バージョン 6、Dell G3 コンピューター。
静的とは、インスタンスに継承されないことを意味します。クラス自体に属します。スコープと同様、インスタンスに継承できず、呼び出すこともできません。
静的プロパティ: これらはクラス自体のプロパティです。クラス自体でのみ呼び出すことができます。静的プロパティはインスタンス オブジェクトから呼び出すことはできません。クラスからのみ呼び出すことができます。もちろん、サブクラスからも呼び出すことができます 親クラスの静的属性;
インスタンス属性: インスタンスの属性です インスタンス オブジェクトが呼び出すことができるインスタンス属性インスタンスはクラスの静的属性を呼び出すことはできませんが、クラスはインスタンス プロパティを呼び出すことができることに注意してください。
静的プロパティを宣言します:
これは、通常のオブジェクトにプロパティを追加するのと同じです、object.a = value;
(現在唯一のメソッド); クラス内に static キーワードを追加することを提案している人もいますが、まだ実装されていません。
class F{}; F.b="父类的静态属性";//给F类加静态方法
静的メソッドの宣言: メソッドの前に static キーワードを追加します
class Foo { static bar () {//静态方法 静态方法中的this指向类本身而不是实例 this.baz(); } static baz () {//静态方法 console.log('hello'); } } Foo.bar() // hello new Foo().bar();//实例调用不了,会报错
インスタンス属性の宣言:
1 (クラス ## で定義) #
class MyClass { myProp = 42; constructor(props) { console.log(this.myProp); // 42 this.name=props.name } } //上面代码中,myProp就是MyClass的实例属性。在MyClass的实例上,可以读取这个属性。2、コンストラクターで定義 (react での従来の記述)
class ReactCounter extends React.Component { constructor(props) { super(props);//可以让子类继承 this.state = { count: 0 }; } } //等价于 class ReactCounter extends React.Component { state = { count: 0 }; }
静的プロパティとインスタンス プロパティの違いの概要:
JavaScript ビデオ チュートリアル 、Web フロントエンド ]
以上がes6 の静的プロパティとインスタンス プロパティの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。