• 工厂函数


      当一个函数返回一个对象时,我们称之他为 工厂函数(factory function)

      

    function createJelly() {
      return {
        type: 'jelly',
        colour: 'red'
        scoops: 3
      };
    }
    

      组合工厂函数

      

    function createJelly() {
      return {
        type: 'jelly',
        colour: 'red',
        scoops: 3
      };
    }
    
    function createIceCream(flavour='Vanilla') {
      return {
        type: 'icecream',
        scoops: 3,
        flavour
      }
    }
    
    function createDessert() {
      return {
        type: 'dessert',
        bowl: [
          createJelly(),
          createIceCream()
        ]
      };
    }
    

      我们可以组合工厂函数来构建任意复杂的对象,这不需要我们结合使用 new 或 this

    function Trifle() {
      Dessert.apply(this, arguments);
    }
     
    Trifle.prototype = Dessert.prototype;
     
    // 或者
     
    class Trifle extends Dessert {
      constructor() {
        super();
      }
    }

    // A trifle *is a* dessert 蛋糕*是*甜点
    // A trifle *has* layers of jelly, custard and cream. It also *has a* topping.
    // 蛋糕 *有* 果冻层,奶酪层和奶油层,顶部还 *有* 装饰配料。
     
    function createTrifle() {
      return {
        type: 'trifle',
        layers: [
          createJelly(),
          createCustard(),
          createCream()
        ],
        topping: createAlmonds()
      };
    }

    异步的工厂函数

    并非所有工厂都会立即返回数据。例如,有些必须先获取数据。

    在这些情况下,我们可以返回 Promises 来定义工厂函数。

  • 相关阅读:
    线程同步(二)—— 条件变量
    线程同步(一)—— 互斥锁
    进程同步(四)—— 消息队列
    Nginx反向代理服务器的配置
    散列表(hash表)
    浅谈bitmap
    进程空间分配和堆栈大小
    拓扑排序
    归并排序
    快速排序
  • 原文地址:https://www.cnblogs.com/yiyi17/p/9143927.html
Copyright © 2020-2023  润新知