Singer类传入对象的设计原因

来源:5-3 歌手数据处理和 Singer 类的封装

RamirezNi

2020-03-31

老师,

你的这里为什么传入一个对象,有什么特别的考虑吗?实例化的时候也需要传入对象,似乎更麻烦一些。
我的猜想是考虑到传入对象不需要考虑参数顺序,但既然封装了这个类编辑器会提示参数及顺序,
那么 还有其他因素导致这样设计吗?

export default class Singer {
  constructor ({ id, name }) {
    this.id = id
    this.name = name
    this.avatar = `https://y.gtimg.cn/music/photo_new/T001R300x300M000${id}.jpg?max_age=2592000`
  }
}
new Singer({
  name: item.Fsinger_name,
  id: item.Fsinger_mid
})

直接按顺序传入对应参数,似乎更方便

export default class _Singer {
  constructor(id, name) {
    this.id = id;
    this.name = name;
    this.avatar = `https://y.gtimg.cn/music/photo_new/T001R300x300M000${id}.jpg?max_age=2592000`;
  }
}
new _Singer(item.Fsinger_name, item.Fsinger_mid)
写回答

1回答

ustbhuangyi

2020-04-01

一般参数过多的时候,用对象可以避免参数顺序出错,当然这个只是建议,如果借助编辑器的提示写多个参数也可以。 

0
1
RamirezNi
非常感谢!
2020-04-01
共1条回复

Vue2.0高级应用教学实战,开发企业级移动端音乐Web App

Vue.js高级知识应用大集合,实战企业级APP,教你搞定组件化开发。

5432 学习 · 3804 问题

查看课程