1、单例模式——在js中就是指的单个对象,可用于命名空间声明

2、示例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>单例模式——在js中就是指的单个对象,可用于命名空间声明</title>
    <script type="text/javascript">
    /***
    *此示例举的是延迟创建的单例模式——惰性单例
    */
    var LazySingle = (function(){
        var _instance = null;//缓存单例对象
        //单例声明
        function Single(){
            return {//单回一个单独的对象,这就是js的单例
                singleMethod:function(){},
                singleProperty:'1.0'
            }
        }
        //获取单例对象接口
        return function(){
            if(!_instance){//如果不存在单例对象的引用
                _instance = Single();//就创建单例对象
            }
            return _instance;//如果存在单例对象就直接返回
        }
    })();//自调用执行一次,里面返回的接口声明就会初始化起效,否则无效

//测试用例
    console.log(LazySingle().singleProperty);

//本例已经通过验证
    </script>
</head>
<body>
    
</body>
</html>

js原生设计模式——8单例模式的更多相关文章

  1. js原生设计模式——8单例模式之简约版属性样式方法库

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  2. 大熊君说说JS与设计模式之------单例模式Singleton()

    一,总体概要 1,笔者浅谈 顾名思义单例模式并不难理解,是产生一个类的唯一实例,在我们实际开发中也会使用到这种模式,它属于创建模式的一种,基于JS语言本身的语法特征, 对象直接量“{}”,也可以作为单 ...

  3. js原生设计模式——2面向对象编程之继承—多继承

    1.单对象克隆 <!DOCTYPE html><html lang="en"><head>    <meta charset=" ...

  4. js原生设计模式——10适配器模式之参数适配器

    原理:参数适配器说白了就是给出要带入数据字段的对应字段的默认值,一旦数据字段值不足,就取默认值补足. [写法一]:直接返回 <!DOCTYPE html><html lang=&qu ...

  5. js原生设计模式——4安全的工厂方法模式之Factory方法模式

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  6. js原生设计模式——4安全的工厂方法模式之oop编程增强版

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  7. js原生设计模式——3简单工厂模式\简单工厂模式封装简单对象

    1.Factory基本写法 <!DOCTYPE html><html lang="en"><head>    <meta charset= ...

  8. js原生设计模式——3简单工厂模式\js面向对象编程实例

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  9. js原生设计模式——2面向对象编程之继承—原型继承(类式继承的封装)

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

随机推荐

  1. 生日蛋糕(DFS)

    题意: Description 7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体.   设从下往上数第i(1 <= i <= M)层蛋糕 ...

  2. 创业手记 Mr.Hua

    <MR.HUA 创业手记>这本书期盼了很久,也看了很久,每每回味都是意犹未尽,仔细研读,真有醍醐灌顶之意.如果说没有跟Mr.Hua结识,那真该庆幸自己得以拜读.我把自己觉得华哥不错的句子摘 ...

  3. hadoop1.2.1 MultipleOutputs将结果输出到多个文件或文件夹

    hadoop1.2.1 MultipleOutputs将结果输出到多个文件或文件夹 博客分类:http://tydldd.iteye.com/blog/2053867 hadoop   hadoop1 ...

  4. Divisor Summation_

    Divisor Summation Problem Description Give a natural number n (1 <= n <= 500000), please tell ...

  5. mysql安装及使用语句

    http://www.mysql.com/downloads/ ubuntu安装sqlite http://www.cnblogs.com/zhuyp1015/p/3561470.html http: ...

  6. 重启OpenStack服务步骤

    [重启neutron服务] 控制节点:service openstack-nova-api restartservice openstack-nova-scheduler restartservice ...

  7. Js中数据类型判断的几种方法

    判断js中的数据类型有一下几种方法:typeof.instanceof. constructor. prototype. $.type()/jquery.type(),接下来主要比较一下这几种方法的异 ...

  8. BNU OJ 51003 BQG's Confusing Sequence

    二进制++高精度取模 #include<cstdio> #include<cstring> #include<algorithm> using namespace ...

  9. A tutorial that will show you how to build an instant messaging app with Sinch.

    http://stackoverflow.com/questions/26247986/unsatisfiedlinkerror-couldnt-load-sinch-android-rtc-from ...

  10. 已经安装了Myeclipse8.5 的情况下,激活myeclipse10.7要注意

    使用下载好的10.7的包里的激活文件和提供的激活方法激活,不成功,在网上搜索了很多方法试过也不成功,最后打开安装目录D:\MyEclipse 10下的myeclipse.ini文件,发现如下内容: . ...