Unterschied: 1. Statische Eigenschaften sind Eigenschaften der Klasse selbst und können nur in der Klasse selbst aufgerufen werden, während Instanzeigenschaften Eigenschaften von Instanzobjekten sind. 2. Instanzobjekte können keine statischen Eigenschaften aufrufen, Klassen können jedoch Instanzeigenschaften aufrufen . Statische Eigenschaften Es gibt nur eine Deklarationsmethode, die Syntax lautet „Klassenname. Attributname = Wert“, während es mehrere Deklarationsmethoden für Instanzattribute gibt, die in der Beispielklasse mit „Attributname = Wert“ definiert sind.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, ECMAScript Version 6, Dell G3-Computer.
Statisch bedeutet, dass es nicht von der Instanz geerbt wird. Es kann nicht von der Instanz geerbt werden und ist nicht mit dem Bereich identisch.
Statische Attribute: Sie sind Attribute der Klasse selbst, die nur in der Klasse selbst aufgerufen werden können. Statische Attribute können nicht für Instanzobjekte aufgerufen werden, sondern können natürlich auch von der Klasse selbst aufgerufen werden statische Attribute der übergeordneten Klasse;
Instanzattribute: Es sind die Attribute der Instanz, die Instanzattribute, die das Instanzobjekt aufrufen kann. Denken Sie daran, dass die Instanz die statischen Attribute der Klasse nicht aufrufen kann die Instanzattribute;
Statische Attribute deklarieren:
Es ist dasselbe wie das Hinzufügen von Eigenschaften zu einem normalen Objekt, object.a = 值;
(einige Leute haben derzeit vorgeschlagen, das Schlüsselwort static hinzuzufügen, aber das ist der Fall noch nicht implementiert
class F{}; F.b="父类的静态属性";//给F类加静态方法
Statische Methode deklarieren: Fügen Sie das statische Schlüsselwort vor der Methode hinzu
class Foo { static bar () {//静态方法 静态方法中的this指向类本身而不是实例 this.baz(); } static baz () {//静态方法 console.log('hello'); } } Foo.bar() // hello new Foo().bar();//实例调用不了,会报错
Instanzeigenschaften deklarieren:
1, definiert in der Klasse
class MyClass { myProp = 42; constructor(props) { console.log(this.myProp); // 42 this.name=props.name } } //上面代码中,myProp就是MyClass的实例属性。在MyClass的实例上,可以读取这个属性。
2, definiert im Konstruktor (klassisches Schreiben in React )
class ReactCounter extends React.Component { constructor(props) { super(props);//可以让子类继承 this.state = { count: 0 }; } } //等价于 class ReactCounter extends React.Component { state = { count: 0 }; }
Zusammenfassung des Unterschieds zwischen statischen Eigenschaften und Instanzeigenschaften:
Statische Eigenschaften sind Die Attribute der Klasse selbst können nur in der Klasse selbst aufgerufen werden, während die Instanzattribute Attribute des Instanzobjekts sind kann vom Instanzobjekt aufgerufen werden.
Instanzobjekte können keine statischen Eigenschaften aufrufen, sie können nur von der Klasse selbst aufgerufen werden, und Klassen können Instanzeigenschaften aufrufen.
Statische Eigenschaften haben nur eine Deklarationsmethode, während Instanzeigenschaften mehrere Deklarationsmethoden haben.
Instanzattribute werden auf der Instanz definiert. Sie können auf dieser innerhalb des Konstruktors oder auf der Instanz definiert werden, nachdem der Konstruktor instanziiert wurde.
Statische Eigenschaften, über dem Konstruktor definierte Eigenschaften. Kann direkt über den Konstruktor aufgerufen werden.
【Verwandte Empfehlungen: Javascript-Video-Tutorial, Web-Frontend】
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen statischen Eigenschaften von es6 und Instanzeigenschaften?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!