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

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

我有这个工厂:

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

当我尝试访问时:

cleanRoom.completed()

即使当我为args对象分配了true的完整属性时,我总是变得假。

我也尝试过这样做:

console.log(title in cleanRoom)

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

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

javascript object hash arguments factory
1个回答
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());
© www.soinside.com 2019 - 2024. All rights reserved.