Kann keine Prototyp-Eigenschaften in der ES6-Klassendefinition definieren

Ich habe ES6-Syntax ausprobiert und festgestellt, dass ich innerhalb der Klassendefinition keine Prototyp- oder Instanzeigenschaft definieren kann. Warum ist dies verboten?

Ich habe @ verwendMyClass.prototype.prop=1 Versuchen Sie es vorher mit ES7 von Babel Compiler (siehe unten). Die Prototypeigenschaft kann immer noch nicht definiert werden.

class MyClass{
  prop=1;
  static sProp=1;
}

Ich denke nicht, dass die Eigenschaft "Instanz definieren" gefährlich ist. In meinem eigenen Browsergame sind zwei Fälle erforderlich, für die eine Prototyp-Eigenschaft erforderlich ist:

Subclass-Instanzen müssen denselben Eigenschaftswert von der Basisklasse erben:

var Building=function(){...}
Building.prototype.sight=350;
TerranBuilding.CommandCenter=...(CommandCenter extends Building)
TerranBuilding.Barracks=...(Barracks extends Building)

So CommandCenter und Barracks haben beide die gleiche Gebäudeansicht wie 350.

new CommandCenter().sight===new Barracks().sight//All buildings have same sight

Puffereffekt überschreibt die ursprüngliche Eigenschaft und entfernt den Puffer

Marine.prototype.speed=20
var unit=new Marine()
unit.speed===20//get unit.__proto__.speed 20
unit.speed=5//Buffer:slow down speed, unit.speed will override unit.__proto__.speed
delete unit.speed//Remove buffer
unit.speed===20//true, speed restore

So sollte es meiner Meinung nach eine Möglichkeit geben, Prototypeigenschaften festzulegen, anstatt sie vollständig zu verbieten, oder können Sie einige andere Lösungen angeben, um die obigen 2 Fälle zu behandeln?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage