我有以下方法,它获取一组数据并从中创建模型的新实例。 reportTemplateData
作为一个对象出现,我对其进行解构,以便将其作为属性列表传递给类构造函数。
虽然这很有效,但我觉得它可以更有效地完成。是否有更优雅的方式在一行左右执行此操作?
addReportTemplate(reportTemplateData) {
const {
id,
pageId,
profileTemplateId,
userId,
name,
description,
createdAt,
updatedAt,
deletedAt,
createdBy,
updatedBy,
deletedBy,
reportTemplateColumns,
} = reportTemplateData;
const newReportTemplate = new ReportTemplate(
id,
pageId,
profileTemplateId,
userId,
name,
description,
createdAt,
updatedAt,
deletedAt,
createdBy,
updatedBy,
deletedBy,
reportTemplateColumns,
);
this.reportTemplates.push(reportTemplates);
}
编辑
值得注意的是,如果您选择 const newReportTemplate = new ReportTemplate({...reportTemplateData})
解决方案,则必须将数据属性与类构造函数参数精确匹配。这对我来说是一个问题,因为数据以 snake_case 形式进入,而我的 Javascript 模型正在寻找驼峰式。
最佳答案
假设只有您要传递的属性在该对象中。
addReportTemplate(reportTemplateData) {
const newReportTemplate = new ReportTemplate({ ...reportTemplateData });
this.reportTemplates.push(reportTemplates);
}
如果您想排除一些属性,请解构它们。
addReportTemplate(reportTemplateData) {
const {
excluded1,
excluded2,
...properties,
} = reportTemplateData;
const newReportTemplate = new ReportTemplate({ ...properties });
this.reportTemplates.push(reportTemplates);
}
这两种方法都需要更改 ReportTemplate 类,其中构造函数将对象作为参数。 在 this pen 中查看此方法如何工作的两个示例.
关于javascript - 有没有一种优雅的方法可以将参数对象传递给函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51855668/