1、源代码

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>vue源码cached高阶函数</title>
</head>
<body>
<script type="text/javascript">
function cached(fn) {
console.log(fn,'fn')
const cache = Object.create(null)
// 返回函数 函数中使用了外部的cache ----闭包
return (function cachedFn(str) {
console.log(str,'str');
const hit = cache[str]
console.log(hit, 'hit')
return hit || (cache[str] = fn(str))
})
}
var capitalize = cached(function(str) {
return str.charAt(0).toUpperCase() + str.slice(1)
});
console.log(capitalize,'capitalize')
console.log(capitalize('abc'), '第一次')
console.log(capitalize('abc'), '第二次')
</script>
</body>
</html>

2、cached函数,输入参数为函数,返回值为函数。同时使用了闭包。

最新文章

  1. Dw CS 破解
  2. JMeter学习-040-JMeter图形化 HTML 报表概要说明
  3. JS魔法堂:判断节点位置关系
  4. Velocity 基本语法
  5. C语言中float如何存储?
  6. Java将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
  7. Action访问Servlet API
  8. 解决ThinkPHP开启APP_DEBUG=&gt;false时报错的问题
  9. Sql Server 与CLR集成
  10. bzoj3894
  11. HOW to Use QP_PREQ_PUB.PRICE_REQUEST API to Price an Item
  12. C# 图片文件与字符串之间的转换
  13. hdu1285 确定比赛名次【拓扑排序】
  14. RFC2616-HTTP1.1-Status Code(状态码规定部分—单词注释版)
  15. 入坑deep learning 1
  16. Vuejs——(8)Vuejs组件的定义
  17. 关于JRebel启动tomcat访问上次工程的index.jsp
  18. NHibernate Isession管理
  19. git 常用命令笔记
  20. Java事务管理之JDBC

热门文章

  1. Java-子类扩展父类功能
  2. jquery获取单选button选中的值
  3. 漫谈js自定义事件、DOM/伪DOM自定义事件
  4. 如何让access空值变成0?(确切的说是让access Null值变成0)
  5. Windows Embedded Compact 7初体验
  6. [实时更新]jquery全部版本号下载
  7. phpExcel导出文件时内存溢出的问题
  8. Web系统自己主动化部署脚本
  9. JDBC操作数据库的批处理
  10. STL队列 之FIFO队列(queue)、优先队列(priority_queue)、双端队列(deque)