我这个岁数的程序圆,学点东西不容易啊,不比你们精神小伙啊。
所以。
不废话了,赶紧努力吧!
纯函数的好处:
- 可缓存;
- 可单元测试;
- 并行处理,ES6以后可以通过(web worker)开启多线程。在多线程处理过程中,不需要访问共享的内存数据,可以任意运行。
可缓存,示例1:
// 安装loadsh库,npm i -D loadsh
const _ = require('loadsh');
function getArea(r) {
console.log(r);
return Math.PI * r * r;
}
let getAreaWithMemory = _.memoize(getArea);
console.log(getAreaWithMemory(4));
console.log(getAreaWithMemory(4));
console.log(getAreaWithMemory(4));
模拟memoize()函数, 示例2:
function memoize (f) {
let cache = {}
return function () {
let key = JSON.stringify(arguments);
cache[key] = cache[key] || f.apply(f, arguments);
return cache[key];
}
}
let getAreaWithMemory = memoize(getArea);
console.log(getAreaWithMemory(4));
console.log(getAreaWithMemory(4));
console.log(getAreaWithMemory(4));
每天写写博客,果然就是超越自己。哈哈哈!