zoukankan      html  css  js  c++  java
  • 设计模式之单例模式,学习笔记

    所谓的单例模式就是说一个对象,我们只去实例化一次,在页面中如果有一个对象是唯一的,那么就可以用单例模式。

    var Fn = function(name){
      this.name = name;
    };

    Fn.prototype.getName = function(){
      return this.name;
    };

    Fn.getInstrace = (function(){
      var isNew = null;
      return function(name){
        return isNew || (isNew = new Fn(name));
      };
    }());


    var a = Fn.getInstrace('JS');
    console.log(a.name); //JS
    var b = Fn.getInstrace('JSSssss');
    console.log(b.name); //JS
    console.log(a===b); //true

    因为只需要实例化一次所以后面传的参数是没有用的。

    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 dan = (function(){
      var is = null;
      return function(html){
        if(!is){
          return is = new createDiv(html);
        }
      return is;
    };
    }());

    var a = new dan('啊啊啊啊啊啊');
    var b = new dan('啊啊啊啊啊啊111');
    console.log(a===b);

  • 相关阅读:
    Codeforces Round #394 (Div. 2) A. Dasha and Stairs
    HDU 1410 PK武林盟主
    HDU 3362 Fix(状压dp)
    P678-vect2.cpp
    Qt5获取本机网络信息
    Qt5标准文件对话框类
    nRF52832无法加载协议栈文件
    Debug记录(1)
    大小端模式
    nRF52832的SAADC
  • 原文地址:https://www.cnblogs.com/pssp/p/5793106.html
Copyright © 2011-2022 走看看