javascript - 如何通过一个对象来修改一个类
问题描述
如果给定一个对象作为参数来修改创建的ExcelFile
(使用Class),我如何通过该对象找到需要修改的参数,然后在ExcelFile
?
例如,如果我打电话modify({date: 12/31/2020})
给它,我希望它将日期更新为 2020 年 12 月 31 日,但是如果我给它, modify({date: '12/31/2020', duration: '60 minutes'})
它会同时更新日期和持续时间。
我的想法在下面,但它没有确定日期......
class ExcelFile{
constructor(arr){
this.date = arr[0];
this.duration = arr[1];
}
modify(obj){
for (let key in obj) {
if (obj[key] === "date") {
this.date = obj[date];
}
}
}
}
解决方案
如果您只需要修改ExcelFile
实例的日期属性,那么您不需要迭代您发送给方法的对象,但您可以通过解构modify
直接访问date
参数的属性
class ExcelFile{
constructor(arr){
this.date = arr[0];
this.duration = arr[1];
}
modify({date, duration}){
this.date = date || this.date
this.duration = duration || this.duration
}
}
const file = new ExcelFile(["01/01/2020", "30 minutes"])
console.log(file)
file.modify({ date:"NEW DATE! 10/10/3000" })
console.log(file)
file.modify({ date:"foo", duration:"bar", unwanted:"baz" })
console.log(file)
推荐阅读
- javascript - Firestore 验证日期(参数“秒”的值必须在 [-62135596800, 253402300799] 范围内)
- python - 查看 PySpark 脚本的 Glue 作业输出的最佳方式
- javascript - 使用 javascript 读取 Excel 文件并将其存储在数组中
- powershell - 获取 SharePoint Online 术语集并在 PowerShell 中不存在时创建术语
- php - 由于用户的变化,如何在 woocommerce 中更改购物车页面?
- vb.net - 如何使用 Ref 游标调用 Oracle 函数并在 Visual Basic 上返回值
- visual-studio-code - VS Code 远程服务器扩展显示“正在尝试重新连接”
- azure - 在哪里可以找到我的 VNet 配置以及我在 Azure 上的 Web 应用程序?
- https - 已超出传入消息 (65536) 的最大消息大小配额,请使用 MaxReceivedMessageSize 属性
- python - 在 python 虚拟环境 windows 10 中进行 pip 安装时遇到此错误