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

时间:2019-05-10 19:23:02

标签: javascript firefox

我刚刚学习JavaScript,并且对编码还很陌生。我正在学习属性和字段,由于某种原因,如果我的课程包含字段,Firefox将无法运行。

有些代码会在标题中出现错误。

class Animal {
  _paws = true;

  get paws() {
    return _paws;
  }
}

let cat = new Animal();

console.log(cat.paws);

3 个答案:

答案 0 :(得分:1)

首先,您的代码中有错误。它应该是this._paws语句中的return

class Animal {
  _paws = true;

  get paws() {
    return this._paws;       // Correct here.
  }
}

let cat = new Animal();

console.log(cat.paws);

关于浏览器的兼容性,如果您选中Public class fields - Chrome Platform Status,则可以清楚地看到Firefox仍在开发中。

status

来自Field declarations ...

  

公共和私有字段声明是JavaScript标准委员会experimental feature (stage 3)提出的TC39。浏览器中的支持是有限的,但是可以通过Babel之类的系统通过构建步骤来使用该功能。

答案 1 :(得分:0)

发现我犯了一个愚蠢的错误

class Animal {
  constructor() {
    this._paws = true;
  }

  get paws() {
    return this._paws;
  }
}

let cat = new Animal();

console.log(cat.paws);

完全忘记了构造函数和这个关键字。

答案 2 :(得分:0)

只需执行此操作即可快速修复:

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 之外的大多数浏览器上的私有字段仍处于实验阶段。