Javascript 在获取数据时,是否有方法将变量添加到构造函数中?
基本上,我正在制作一个统计网站,在那里我使用fetchapi获取数据并将其显示在我的页面上。问题是,我使用的API有大量的数据,所有数据的名称也非常相似。例如,有不同类型的游戏模式,可以显示为: 建立偶然的胜利:#;阿切尔休闲赛获胜:#;我正在使用一个构造函数,我想知道是否有一种方法可以在构造函数中设置一个变量以使其更容易 例如:Javascript 在获取数据时,是否有方法将变量添加到构造函数中?,javascript,html,fetch,Javascript,Html,Fetch,基本上,我正在制作一个统计网站,在那里我使用fetchapi获取数据并将其显示在我的页面上。问题是,我使用的API有大量的数据,所有数据的名称也非常相似。例如,有不同类型的游戏模式,可以显示为: 建立偶然的胜利:#;阿切尔休闲赛获胜:#;我正在使用一个构造函数,我想知道是否有一种方法可以在构造函数中设置一个变量以使其更容易 例如: constructor(buildUHCWins, buildUHCLosses, buildCasualWS, buildCasualBestWS, bui
constructor(buildUHCWins, buildUHCLosses, buildCasualWS, buildCasualBestWS, buildUHCWinsComp, buildUHCLossesComp, buildCompWS, buildCompBestWS) {
}
}
我已经厌倦了这种重复性的设置。有没有一种方法可以做一些事情,比如:
constructor(${variable}wins) {
this.${variable}wins = wins;
}
}
或者类似的
编辑:
这就是我如何设置我的另一个文件的方法,在这里我调用构造函数来使用我从API获得的数据并将其显示在我的页面上。我想知道如何将其最小化,因为正如您所看到的,我在构造函数中有多个参数,并且必须为data.response调用API。${gamemode type} 您可以传入一个关联数组/对象,而不是每个单独的记录
let records = {buildUHCWins:"...", buildCasualWS:"...",...}
constructor(records)
{
this.records = records;
}
如果希望将对象记录作为直接成员,可以这样做
constructor(records)
{
for (key in records) {
this[key] = records[key];
}
}
然后您仍然可以访问
foo.buildUHCWins
,如果是我,我会使用POJO。构造函数是一个痛苦的过程,我想说的是,数据的多态形状应该放在对象映射中,类应该是一个薄包装器。(IMO)构建这样一种语法,其中变量名是任意确定的,从代码设计到优化阻塞,这是一个坏主意。当您使用变量时,您应该知道它们是什么,如果您需要动态数组或映射的形式,您应该使用它。我们现在有了解构,所以就没有什么理由允许这种有问题的语法了。您可以扩展对象(包括类),我将使用POJO,但我不知道它们是什么,当从另一个文件调用构造函数时,它是如何工作的<代码>让buildCompBestWS=data.response[“builduhc竞争最佳winstreak”];let stats=new userStats(buildUHCWins、builduhcloss、buildCasualWS、buildCasualBestWS、buildUHCWinsComp、buildUHCLossesComp、buildCompWS、buildCompBestWS)代码>这是我设置它的方式^您可以这样称呼它<代码>让记录={“buildUHCWins”:buildUHCWins,“builduhcloss”:builduhcloss,…};let stats=新用户统计(记录)或者您可以直接从数据响应中构建记录
对象let records={“buildUHCWins”:data.response[“…”,…};let stats=新用户统计(记录)代码>对不起,我仍然很困惑你的意思:3如果我这样做,我将如何指定我要显示的部分<代码>让buildUHCWins=document.createElement(“p”)
buildUHCWins.innerText=
BuildUHC休闲赢家:${stats.buildUHCWins}
要设置它,可以使用buildUHCWins.innerText=stats.records.buildUHCWins代码>如果使用第一个选项或buildUHCWins.innerText=stats.buildHCPWins代码>如果你用第二个。
constructor(records)
{
for (key in records) {
this[key] = records[key];
}
}