Não é possível definir propriedades do protótipo na definição de classe ES6

Eu estava tentando a sintaxe do ES6 e descobri que não posso definir a propriedade prototype ou a propriedade de instância na definição de classe. Por que a proíbe?

Eu estava usandoMyClass.prototype.prop=1 antes, tente o ES7 pelo compilador babel como abaixo, ainda não é possível definir a propriedade prototype.

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

Eu não acho que definir propriedade de instância seja perigoso, há 2 casos em meu próprio jogo de navegador que precisam de propriedade de protótipo:

As instâncias da subclasse precisam herdar o mesmo valor da propriedade da classe base:

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

Portanto, o CommandCenter e o Barracks terão a mesma visão de construção que o 350.

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

O efeito do buffer substitui a propriedade original e remove o buffer

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

Então, acho que deve adicionar uma maneira de definir a propriedade prototype em vez de proibi-la completamente, ou você pode dar outras soluções para lidar com os casos acima de 2?

questionAnswers(2)

yourAnswerToTheQuestion