我有这个工厂:
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/