如何从工厂对象中的对象参数检索对象属性?

时间:2019-12-13 21:28:29

标签: javascript object hash arguments factory

我有这个工厂:

collect()

并创建了该对象:

const task = (args) => {
    const title = args.title
    const completed = () => {
        return args.hasOwnProperty(completed) ? args.completed : false //assign default parameter of false to completed
    }

    return {
        title,
        completed
    }
}

当我尝试访问时:

const cleanRoom = task({
    title: 'Test',
    completed: true
})

即使我为args对象分配了完成的true属性,我也总是会出错。

我也尝试过这样做:

cleanRoom.completed()

,它返回的标题是不确定的,这使我怀疑完成函数中的问题是args.hasOwnProperty件的返回值。 我已经花了一些时间尝试解决它,但未能解决。

此外,此任务的重点是将对象作为参数传递给工厂(避免使用固定顺序的参数)

1 个答案:

答案 0 :(得分:1)

您应该使用string作为属性键:

const task = (args) => {
  const title = args.title
  const completed = () => {
    return args.hasOwnProperty("completed") ? args.completed : false //assign default parameter of false to completed
  }

  return {
    title,
    completed
  }
}

const cleanRoom = task({
  title: 'Test',
  completed: true
})

console.log(cleanRoom.completed());