为什么用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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...