在为JS

时间:2018-07-27 11:07:23

标签: javascript

我的课堂宣言是:

class Category {
  constructor(id, name, type, url) {
    this.id = id;
    this.name = name;
    this.type = type;
    this.url = url;
    this.assets = [];
  }

  set assets(value) {
    this.assets = value;
  }
}

我已使用import Category from './beans';将其导入到我的主类中,并且尝试使用

声明该类的对象
let category = new Category("1", "2", "3", "4");

我遇到了错误:

undefined is not a constructor (evaluating 'new _beans.Category("1", "2", "3", "4")')

如何解决这个问题?


编辑似乎是assets的构造函数中的Category声明引起了错误。当我删除它时,它起作用了。现在的问题是,如何在Category类中保留一个变量,该变量将在以后初始化而不是在构造函数中?

1 个答案:

答案 0 :(得分:0)

关于如何保存实例变量的新问题。与其他一些语言不同,您不能在构造函数(或其他实例方法)之外声明实例变量。因此,您可以将它们放入构造函数中,但不必提前知道其值。例如:

class Category {
    constructor(id, name, type, url) {
        this.id = id;
        this.name = name;
        this.type = type;
        this.url = url;
        this.assets = [];
        this.myVar = null;
    }
    setMyVar(myVar) {
        this.myVar = myVar;
    }
}