You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript函数式场景下,Farm函数区分动物类型的最优模式?

问题:农场函数根据动物类型执行不同操作

假设有一个接收对象参数的函数Farm(animal1, animal2, ...),这些对象是通过以下两个工厂方法创建的Sheep或Cow:

function Sheep(id)
{
  function noise() {console.log('baa');}
  return {
    my_id : id, 
    noise
  }
}

function Cow(id)
{
  function noise() {console.log('moo');}
  function swish_tail () {}
  return {
    my_id : id, 
    noise,
    swish_tail
  }
}

现在需要让Farm根据动物对象的类型执行不同操作(如统计各类动物数量、先让所有绵羊发出叫声再让奶牛叫等),可选方案如下:

  • 为每种动物使用原型,在Farm中检查对象原型?
  • 基于只有Cow拥有swish_tail()方法这一特征判断?
  • 让Sheep和Cow通过函数式继承自Animal工厂方法,并为Animal添加type属性?

理想状态下,应尽可能让Farm不了解各动物的实现细节。

内容的提问来源于stack exchange,提问作者stuwilmur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 09:55:19