是否可以省略工厂功能的属性?

问题描述 投票:0回答:1

我想知道是否有可能避免在工厂函数中定义属性。我尝试使用destructuringarguments

让我更好地解释自己。假设我们具有以下工厂功能:

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...')
    }
  })

有可能吗?

javascript javascript-objects factory-pattern destructuring
1个回答
0
投票

如果将参数转换为对象,则可以这样做:

const create_game = attributes => 
  ({
    ...attributes,
    load() {
      console.log('Loading game...')
    }
  })

create_game({ name: '...', artist: '...', release: '...' })

否则,如果您希望以后的代码阅读者为难,可以使用this hack获取函数参数名称并进行魔术处理。

© www.soinside.com 2019 - 2024. All rights reserved.