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。