美文网首页
JS---记忆

JS---记忆

作者: 麻辣小面瘫 | 来源:发表于2018-01-15 21:52 被阅读0次

记忆:函数可以将先前操作的结果记录在某个对象里面,从而避免无谓的重复运算。这种优化被称之为记忆。

斐波那契数列:
一般写法:

function Fibb(n){
  return n < 2? n : Fibb(n-1)+Fibb(n-2);
}

但是这样写,做了太多了无所谓的计算
优化:

  声明一个moment的数组来保存计算的结果,这个存储结果可以隐藏在闭包中,当函数被调用时,这个函数首先检查结果是否存在,如果存在,则立即返回;
   var fibb = function(){
      var moment = [0,1];
      var fib = function(n){
          var results = moment[n];
          if(typeof result !== 'number'){
               result = fib(n-1) + fib(n-2);
               moment = result[n];
          }
          return results
      };
      return fib;
   }()

推广

 var memoizer = function(memo,formula){
  var recur = function(n){
    var result = mome[n];
    if(typeof result !== 'number'){
      result = formula(recur,n);
      moment[n] = result
    }
    return result;
  }
  return recur;
}

var fibb = momizer(momt[0,1],function(recur,n){
  return recur(n-1) + recur(n-2);
})

相关文章

  • JS---记忆

    记忆:函数可以将先前操作的结果记录在某个对象里面,从而避免无谓的重复运算。这种优化被称之为记忆。 斐波那契数列:一...

  • js

    /* * * 页面中有什么代码?html--展示内容,css---美化页面的,js---控制页面 * * js的代...

  • js---跨域

    1.什么是跨域 我们经常会在页面上使用ajax请求访问其他服务器的数据,此时,客户端会出现跨域问题. 跨域问题是由...

  • js---立即执行函数及闭包

    讲解透彻:https://developer.mozilla.org/zh-CN/docs/Web/JavaScr...

  • 原生JS---经典面试题总结---doing

    总结的很全面:前端知识图谱 小昭聊前端--经典面试题总结 vue双向绑定原理分析 vue 3.0新特性 2019 ...

  • 记忆记忆记忆

    下雨了 一阵急雨窗外 我在想,我楼顶晾晒的东西 地毯式搜索,搜索记忆…… 结果是:没有。最近并没有在楼顶晾晒东西 ...

  • JS---正则表达式/常用JS正则表达式

    正则 1 . 修饰词i :匹配时忽略大小写 g : 匹配时全局匹配,查找所有匹配项,而非查找到一个既停止2 . 匹...

  • JS---正则表达式/常用JS正则表达式

    正则 1 . 修饰词i :匹配时忽略大小写 g : 匹配时全局匹配,查找所有匹配项,而非查找到一个既停止2 . 匹...

  • JS---正则表达式/常用JS正则表达式

    正则 1 . 修饰词 2 . 匹配模式方括号---方括号用于查找某个范围内的字符: 元字符----元字符(Meta...

  • 记忆 记忆

    你说奇不奇怪,我看的第一部韩剧《我叫金三顺》是在我大姨家跟表姐一起看的 刚刚聊天时说起这事,表姐说《豪杰春香》是她...

网友评论

      本文标题:JS---记忆

      本文链接:https://www.haomeiwen.com/subject/gzbjkxtx.html