obj1 和 obj2 等等对象,都是历史遗留,对象里面属性名都是固定死的。对象属性名不同但是属性的用法都是一样的。
目前想封装一个 myNewModule 模块(先认为是函数,不一定是函数)能处理它们,但是能不能不用 options 参数来告知属性名,想改为一种在未来 debug 时更加容易理解的方式来告知 /注册。
const obj1 = {
registerLabel: '张三',
registerAge: 56,
buyerCartList: []
// ...还有十几个需要传入 myNewModule 模块的属性
}
const obj2 = {
userLabel: '李四',
userAge: 56,
userCartList: []
// ...还有十几个需要传入 myNewModule 模块的属性
}
myNewModule(obj1, {
labelName: 'registerLabel',
ageName: 'registerAge',
cartListName: 'buyerCartList'
})
myNewModule(obj2, {
labelName: 'userLabel',
ageName: 'userAge',
cartListName: 'userCartList'
})
// 模块开发中:
const myNewModule = (target, options) => {
const label = target[options.labelName]
const age = target[options.ageName]
const cartList = target[options.cartListName]
// ...处理 label age 等十多个属性
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.