如何解决为什么用JavaScrirpt中的内部函数完成合成?
我一直在阅读有关构图的信息,但是我看到的每个教程都具有类似以下内容。
const eater = (state) => ({
eat(amount) {
console.log(`${state.name} is eating.`)
state.energy += amount
}
});
function Dog(name,energy,breed) {
let dog = {
name,breed,}
return Object.assign(
dog,eater(dog),sleeper(dog),player(dog),barker(dog),)
}
const leo = Dog('Leo',10,'Goldendoodle')
leo.eat(10) // Leo is eating
leo.bark() // Woof Woof!
为什么我们需要 Eater函数来返回要添加为属性的函数?
通过扩展,为什么我们需要发送要添加方法的对象?
为什么不执行以下操作?
const eat = (amount) => {
console.log(`${this.name} is eating.`)
this.energy += amount
}
function Dog(name,{
eat
},{
sleep
},{
play
},{
bark
}
)
}
const leo = Dog('Leo','Goldendoodle')
leo.eat(10) // Leo is eating
leo.bark() // Woof Woof!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。