如何使用 Factory Function 回傳 Function ?

栏目: JavaScript · 发布时间: 7年前

内容简介:傳統 Factory Function 是用來回傳 Object,但 ECMAScript 支援 First-Class Function,且 Function 其實也是 Object,因此 Factory Function 可廣義回傳底層已經準備好的 Function。ECMAScript 2015已經準備好

傳統 Factory Function 是用來回傳 Object,但 ECMAScript 支援 First-Class Function,且 Function 其實也是 Object,因此 Factory Function 可廣義回傳底層已經準備好的 Function。

Version

ECMAScript 2015

Switch Case

const funcA = () => 'a';
const funcB = () => 'b';
const emptyFunc = () => {};

const factoryFunc = funcName => {
  switch (funcName) {
    case 'funcA':
      return funcA;

    case 'funcB':
      return funcB;

    default:
      return emptyFunc;
  }
};

console.log(factoryFunc('funcA')());
console.log(factoryFunc('funcB')());
console.log(factoryFunc('funcC')());

已經準備好 funcAfuncB ,在 factoryFunc() 由 user 傳入 function 名稱 ,就回傳指定的 function。

最直覺的寫法就是使用 switch case

如何使用 Factory Function 回傳 Function ?

Object Literal

const funcA = () => 'a';
const funcB = () => 'b';
const emptyFunc = () => {};

const funcMap = {
  funcA,
  funcB,
};

const factoryFunc = funcName => funcMap[funcName] || emptyFunc;

console.log(factoryFunc('funcA')());
console.log(factoryFunc('funcB')());
console.log(factoryFunc('funcC')());

由於 Object Literal 的 key / value 特性,其實可以用來取代 switch case ,至於 default 則使用 || 表示。

如何使用 Factory Function 回傳 Function ?

Conclusion

  • 使用 Factory Function 回傳 function 是實務上常見的需求,尤其以 Object Literal 實現 Factory Function 既精簡又優雅

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

游戏编程中的人工智能技术

游戏编程中的人工智能技术

布克兰德 / 吴祖增 / 清华大学出版社 / 2006-5 / 39.0

《游戏编程中的人工智能技术》是人工智能游戏编程的一本指南性读物,介绍在游戏开发中怎样应用遗传算法和人工神经网络来创建电脑游戏中所需要的人工智能。书中包含了许多实用例子,所有例子的完整源码和可执行程序都能在随书附带的光盘上找到。光盘中还有不少其他方面的游戏开发资料和一个赛车游戏演示软件。 《游戏编程中的人工智能技术》适合遗传算法和人工神经网络等人工智能技术的各行业人员,特别是要实际动手做应用开......一起来看看 《游戏编程中的人工智能技术》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具