当前位置:首页 > 域名

帮你精通JS:一段函数的进化史

一、帮精首先写一段求阶乘的段的进函数

用 memozation实现一段factorial

> var cache = { }; > > function factorial(x) {  ...     if (x < 2) return 1; ...     if (!(x in cache)) {  .....         cache[x] = x * factorial(x - 1); .....     } ...     return cache[x]; ... } > factorial(8) 40320 > cache {  2: 2, 3: 6, 4: 24, 5: 120, 6: 720, 7: 5040, 8: 40320 } 

此处 cache 只用于函数 factorial 之内,却过分暴露于外。源码下载函数化史按照 least exposure(POLE) 将其隐藏起来。帮精直觉方法就是段的进直接将其放入其中。亿华云

二、函数化史初步解决接口过分暴露的帮精问题

重新定义最外层coverTheCache函数将其包裹起来。

> function coverTheCache() {  ...     // "middle scope",段的香港云服务器进 where we cover `cache` ...     var cache = { }; ... ...     return factorial; ... ...     // 

分享到:

滇ICP备2023006006号-16