闭包实现单例模式

216 阅读1分钟

上篇闭包基础中讲到了闭包原理,这节将讲闭包的一些运用。 在以前的文章中,涉及到闭包的运用有防抖节流。感兴趣的可以去看下。

用闭包实现登录

警告:如果闭包底层都不了解的话,请先去了解,要不你看不懂。。不是我嫌弃你,而是有些文章相辅相成。 我这么讲,你应该懂吧????

内容里注释实在不想写了,,,以前的防抖节流写过


<body>
    <button id="loginBtn">点击</button>
    <script>
        // 单例模式实现登录
        var createLogin = function () {
            var div = document.createElement('div')
            div.innerHTML = '登录的弹窗'
            div.style.display = 'none'
            document.body.appendChild(div)
            return div
        }
        var getSingle = function (fn) {
            var result;
            return function () {
                return result || (result = fn.apply(this.arguments))
            }
        }
        var create = getSingle(createLogin)
        document.getElementById('loginBtn').onclick = function () {
            var loginLay = create()
            loginLay.style.display = 'block'
        }
    </script>
</body>