Javascript JS的贴花类和对象出错

Javascript JS的贴花类和对象出错,javascript,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 fro

我的班级宣言是:

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")')
如何解决这个问题



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

关于如何保存实例变量的新问题。与其他一些语言不同,您不能在构造函数(或其他实例方法)之外声明实例变量。所以你可以把这些放在你的构造函数中,但是你不需要提前知道值。例如:

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;
    }
}

缺少
导出
此处:
类别{
@Rajesh这不起作用。现在我的应用程序崩溃了,没有发送任何错误。您是否尝试将导入的文件中的
类别
记录到控制台,以检查它是否已定义?@Aplet123我刚才尝试了记录,但它出现了
未定义的
。如何定义它?@khateb您能告诉我如何导出模块吗?啊,我使用的是
设置资产(值)
而不是一个普通函数。知道为什么会崩溃吗?getter和setter是特殊的。问题是,通过将资产声明为setter,实际上是通过这样做将其作为构造函数的一部分进行调用。assets=[],然后在无限循环中一次又一次地调用setter。如果要使用getter/setter,则在内部设置实例变量名称时,必须在其前面加上前缀。例如,如果this.assets是setter,请在setter本身中使用this.\u assets。