我想知道是否有可能避免在工厂函数中定义属性。我尝试使用destructuring和arguments。
让我更好地解释自己。假设我们具有以下工厂功能:
const create_game = (name, artist, release) =>
({
name,
artist,
release,
load() {
console.log('Loading game...')
}
})
我已经使用了一种称为财产价值简写的解构技术,因此我不必为财产分配而重复自己。
name: name,
我的问题是,我是否可以进一步做一些类似于此的魔术:
const create_game = (name, artist, release) =>
({
...args,
load() {
console.log('Loading game...')
}
})
有可能吗?
如果将参数转换为对象,则可以这样做:
const create_game = attributes =>
({
...attributes,
load() {
console.log('Loading game...')
}
})
create_game({ name: '...', artist: '...', release: '...' })
否则,如果您希望以后的代码阅读者为难,可以使用this hack获取函数参数名称并进行魔术处理。