JS 基础篇(单例模式)

以弹窗为例

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>单例模式</title>
</head>

<body>
    <button type="button" id="btnpop">弹出</button>
    <button type="button" id="btnframe">iframe</button>

    <script>
        //把变 的部分封装,不变的隔离 ,开发-封闭原则
        function createEl(fn) {
            var result;
            return function () {
                if (!result) {
                    result = fn.apply(this, arguments);
                }
                return result;
            }
        }

        function createWindow() {
            var div = document.createElement("div");
            div.innerHTML = '我是弹窗内容';
            div.style.display = 'none';
            document.body.appendChild(div);
            return div;
        }
        function createIframe() {
            var iframe = document.createElement("iframe");
            iframe.style.display = 'none';
            document.body.appendChild(iframe);
            return iframe;
        }
        var fun01 = createEl(createWindow);
        var fun02 = createEl(createIframe);

        document.getElementById("btnpop").onclick = function () {
            var el = fun01();
            el.style.display = 'block';
        };

        document.getElementById("btnframe").onclick = function () {
            var el = fun02();
            el.style.display = 'block';
        };
    </script>
</body>

</html>
原创文章 207 获赞 173 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_41181778/article/details/104054031