【问题标题】:Javascript class variablesJavascript 类变量
【发布时间】:2016-07-01 14:21:01
【问题描述】:

我在尝试在 Javascript 类中声明变量时遇到错误。这是一个代码示例。

class BaseContainer {
  constructor(parent){
    this.Shell = document.createElement("DIV");
    parent.appendChild(this.Shell);
  };
  this.SomeVar = 1;
};

它给了我一个错误。

【问题讨论】:

  • 它会给你什么错误?
  • 错误是什么?
  • SyntaxError: missing : after property id
  • 为什么在类声明的任何方法之外都有this引用?
  • @binariedMe 所以我不应该使用这个?但是这个变量会公开吗?

标签: javascript class oop


【解决方案1】:

嗯,你不能在class 中声明变量。如果要创建属性,请将其放入构造函数中。此外,您不能在方法声明之后放置分号(包括constructor)。

class BaseContainer {
    constructor(parent) {
        this.someVar = 1;
        this.shell = document.createElement("div");
        parent.appendChild(this.shell);
    }
}

【讨论】:

  • 谢谢。也想知道这个 JS 类对我来说是新的。我总是使用旧式函数 () {};去做吧。这个类的东西现在支持得好吗?还是还是很新的东西?
  • @AntonStafeyev 只有最近的浏览器才支持它们。对于其他所有内容,请使用转译器。如需参考,请查看kangax.github.io/compat-table/es6
【解决方案2】:

定义不带this关键字的变量,

class BaseContainer {
  SomeVar = 1;
  constructor(parent){
    this.Shell = document.createElement("div");
    parent.appendChild(this.Shell);
  }
}

【讨论】:

    猜你喜欢
    • 2019-11-15
    • 1970-01-01
    • 2010-09-20
    • 2013-01-16
    • 2010-12-21
    • 2017-10-05
    • 2010-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多