zoukankan      html  css  js  c++  java
  • JS设计模式之---单例模式

    • 单例模式是保证一个类仅有一个实例,并提供一个访问它的全局访问点。
    • 单例模式在现在面向对象的语言Java,C#,C++等等中也有很多用到,其实它在Javascript中使用同样非常广泛。
    var CreateDiv = function (html) {
                this.html = html;
                this.init();
            };
            CreateDiv.prototype.init = function () {
                var div = document.createElement('div');
                div.innerHTML = this.html;
                document.body.appendChild(div);
            };
            var ProxySingletonCreateDiv = (function () {
                var instance;
                return function (html) {
                    if (!instance) {
                        instance = new CreateDiv(html);
                    }
                    return instance;
                };
            })();
            var a = new ProxySingletonCreateDiv('test1');
            var b = new ProxySingletonCreateDiv('test2');
            console.log(a===b);//true  页面只会创建 test1
    •  我们继续抽离代码,使之更为通用
     var getSingle = function (fn) {
                var result;
                return function () {
                    return result ||(result=fn.apply(this, arguments));
                }
            };
    • 我们把生成单例的逻辑抽离出来,将函数作为一个变量参数进行传入,这样以后只需要新建对应的函数就好,这段代码就完全通用了,这个跟Jquery 中one 函数类似。
  • 相关阅读:
    window 操作
    idea使用
    安装zookeeper
    resource和autowired
    python浅见 (Python 3000)
    Tomcat服务器
    servlet
    事件是一种委托吗?什么是委托?什么是事件?
    int值类型的ToString()方法是否装箱
    抽象类,虚方法与普通类的区别
  • 原文地址:https://www.cnblogs.com/meiyh/p/6433973.html
Copyright © 2011-2022 走看看