为什么在JavaScript中使用内部函数进行合成?

为什么在JavaScript中使用内部函数进行合成?,javascript,function,composition,Javascript,Function,Composition,我一直在阅读有关作文的文章,但我看到的每一篇教程都与下面的内容类似 const-eater=(state)=>({ 吃(量){ log(`${state.name}正在吃东西。`) 状态能量+=数量 } }); 功能犬(名称、能量、品种){ 让狗{ 名称 能量 繁殖 } 返回Object.assign( 狗, 食客(狗), 卧铺(狗), 球员(狗), 巴克(狗), ) } const leo=狗('leo',10,'goldendodle')) leo.吃(10)//leo正在吃 利奥。巴克(

我一直在阅读有关作文的文章,但我看到的每一篇教程都与下面的内容类似

const-eater=(state)=>({
吃(量){
log(`${state.name}正在吃东西。`)
状态能量+=数量
}
});
功能犬(名称、能量、品种){
让狗{
名称
能量
繁殖
}
返回Object.assign(
狗,
食客(狗),
卧铺(狗),
球员(狗),
巴克(狗),
)
}
const leo=狗('leo',10,'goldendodle'))
leo.吃(10)//leo正在吃

利奥。巴克()//汪汪汪您的版本演示的是面向对象编程,而不是高阶函数。高阶编程使用闭包变量,而不是
@Barmar我们是否尝试避免使用组合的面向对象编程?我以为我们在避免继承。在我的经验中,您的两个代码块似乎都不是常见的样式。“函数组合”的定义是返回从外部函数捕获变量的闭包。JS中的继承是使用对象原型完成的。