我有这个工厂:
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件的返回值。我已经花了一些时间试图解决它,但未能解决。
此外,此任务的重点是将对象作为参数传递给工厂(避免使用固定顺序的参数)
您应使用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());