在可以在构造函数中使用的类中声明共享变量的最佳方法是什么?
我尝试使用这样的原型:
class Cell {
constructor(element) {
this.view = document.createElement(element);
this.value = cellSymbol.NO_MINE;
}
isMine() { return this.value == cellSymbol.MINE; }
makeMine() { this.value = cellSymbol.MINE; }
getView() { return this.view; }
addOnClickFn(func) { this.view.onclick = func; }
removeOnClickFn() { this.view.onclick = ''; }
addClassStyle(style) { this.view.className = style; }
openCell(style) {
this.view.className = style;
this.value = cellSymbol.OPEN_CELL;
}
}
Cell.prototype.cellSymbol = Object.freeze({
NO_MINE: 0,
MINE: 9,
OPEN_CELL: '#'
});
var cell = new Cell('td');
但它不起作用。我得到cellSymbol
未定义。我假设类构造函数是在原型之前创建的,因此cellSymbol
是未知的。
我认为将cellSymbol
放入课堂是没有意义的,因为没有必要让每个实例拥有它cellSymbol
。