zoukankan      html  css  js  c++  java
  • vue源码cached高阶函数解析

    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函数,输入参数为函数,返回值为函数。同时使用了闭包。

  • 相关阅读:
    ES6-Object
    ES6-Iterator
    ES6-Generator
    ES6-fetch
    ES6-Function
    ES6-Array
    ES6-Class
    SQLite使用事务更新—by command
    交款功能代码
    SQLite本地事务处理
  • 原文地址:https://www.cnblogs.com/mengfangui/p/9970356.html
Copyright © 2011-2022 走看看