如何修复SyntaxError:JavaScript、Firefox中当前不支持字段错误?

如何修复SyntaxError:JavaScript、Firefox中当前不支持字段错误?,javascript,firefox,Javascript,Firefox,我刚刚学习了JavaScript,对编码还相当陌生。我正在学习属性和字段,由于某种原因,如果我的类包含字段,Firefox将不会运行 下面是一些在标题中给出错误的代码 class Animal { _paws = true; get paws() { return _paws; } } let cat = new Animal(); console.log(cat.paws); 首先,代码中有一个错误。它应该是this.\u paws在return语句中 类动物{

我刚刚学习了JavaScript,对编码还相当陌生。我正在学习属性和字段,由于某种原因,如果我的类包含字段,Firefox将不会运行

下面是一些在标题中给出错误的代码

class Animal {
  _paws = true;

  get paws() {
    return _paws;
  }
}

let cat = new Animal();

console.log(cat.paws);

首先,代码中有一个错误。它应该是
this.\u paws
return
语句中

类动物{
_爪=真;
抓爪子{
返回此项。_paws;//在此处更正。
}
}
让猫=新动物();

控制台日志(猫爪)只需执行此操作即可快速修复:

class Animal {
  // _paws = true; Remove this line.

  // Initialize your private fields in constructor instead
  constructor() {
    this._paws;
  }

  get paws() {
    return this._paws; // Must use this._fieldName to reference
  }
}

let cat = new Animal();

console.log(cat.paws);

请注意,私有字段在除Google Chrome之外的大多数浏览器上仍处于试验阶段。

现在是2020年7月,仍然不支持Javascript中的公共和私有字段声明。我发现在JS中很难实现OOP。是否有其他方法来实现公共领域?我试图声明所有其他类使用的有效静态常量<代码>类媒体{IMAGE=0;AUDIO=1;VIDEO=2;}
并在其他类中像
MEDIA.IMAGE
MEDIA.AUDIO
一样使用它们,但我发现这一限制很难实现。@BReddy在这种情况下使用TypeScript。JavaScript不支持OOP或类型。@BReddy您可能知道最近的Firefox现在支持字段,包括静态字段,因此您可以声明
类媒体{static IMAGE=0;}
等等。当然,这是最前沿的(目前的LTS版本还没有),所以对于生产来说不是一个好主意。在此期间,您始终可以使用旧的类语法。@Headbank,谢谢您提供的更新信息。我会密切关注这一功能。@PraveenKumarPurushothaman很乐意这么做-我想我会删除chromestatus.com的引用和屏幕截图,简单地用firefox 69现在支持公共字段声明来代替。(下面是developer.mozilla.org的一节作为警告。)如果这对你有效,我会在有时间的时候执行。