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

标签 javascript object hash arguments factory

我有这个工厂:

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

我总是得到 false,即使我为 args 对象分配了 true 的完成属性。

我也尝试过这样做:

console.log(title in cleanRoom)

它返回 title is undefined,这让我想知道已完成函数中的问题是 args.hasOwnProperty block 的返回值。 我花了几个小时试图解决这个问题,但一直没能成功。

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

最佳答案

您应该使用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());

关于javascript - 如何从工厂对象中的对象参数检索对象属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59330031/

相关文章:

javascript - 你如何在 jQuery fadeOut() 开始后取消它?

JavaScript 对象、数组,混淆了吗?

c++ - 创建存储数组属性的对象数组

c++ - 字符串数据的哈希函数

javascript - 在 Gridster.js 中更新图 block 位置的算法是什么

javascript - Angular.js ng-view忽略路由

sql-server - SQL Server - PWDEncrypt 和 PWDCompare 的替代实现

ruby - 使用哈希默认值时出现奇怪的意外行为(消失/更改值),例如哈希.new([])

javascript - 可以使用 jQuery 在值中查找点击的数字

java - Java 中的列表和 map