<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
/*
      通过一个匿名函数自执行运行,动态创建返回对象,通过函数作用域来形成私有变量的一种技巧
模拟单例模式
    */
var mySingleton = (function () {
//实例保持了Singleton的一个引用
var instance;
function init() {
//Singleton
//私有方法和变量
function privateMethod() {
console.log("I am private");
}
var privateVariable = "Im also privete";
var privaeRandomNumber = Math.random;
return {
//公有方法和变量
publicMethod: function () { },
publicPropterty: "I am also public",
getRandomNumber: function () {
return privaeRandomNumber;
}
}
}; return {
//获取Singleton的实例,如果存在就返回,不存在就创建新的实例
getInstance: function () {
if (!instance) {
instance = init();
}
return instance;
}
} })() </script>
</head>
<body> </body>
</html>

JS设计模式学习实例之单例模式的更多相关文章

  1. Java设计模式学习笔记(五) 单例模式

    前言 本篇是设计模式学习笔记的其中一篇文章,如对其他模式有兴趣,可从该地址查找设计模式学习笔记汇总地址 1. 使用单例模式的原因 以Windows任务管理器为例,在Windows系统中,任务管理器是唯 ...

  2. Java设计模式学习笔记(单例模式)

    最近一直在看<Head First设计模式>,这本书写的确实是很不错的,专注于怎么用最简单的方式最通俗的语言让人了解设计模式.据说GoF的设计模式那本书写的很好,是一本经典,但是就是难懂, ...

  3. JS设计模式(1)单例模式

    什么是单例模式 定义:1.只有一个实例.2.可以全局访问 主要解决:一个全局使用的类频繁地创建与销毁. 何时使用:当您想控制实例数目,节省系统资源的时候. 如何解决:判断系统是否已经有这个单例,如果有 ...

  4. 《JS设计模式笔记》 1,单例模式

    <script type="text/javascript"> //单例模式 //1,每次点击都会生成一个新的div var createMask=function ( ...

  5. JS设计模式(一) 单例模式

    命名空间 单例模式是JavaScript中最常见的一种模式,通过这种模式可以为我们提供一个命名空间,例如jQuery库的命名空间为jQuery或$.命名空间的使用是为了让代码更加整洁,在多人协作开发的 ...

  6. C#设计模式学习笔记-单例模式随笔

    最近学习 设计模式,从单例模式入手 啥是单例模式: 要实现一个单例类的话,首先,肯定是不能让用户自行生产的,那就是说明不能让用户new,所以,就必须把构造函数设置成为私有的 因为静态变量的生命周期跟整 ...

  7. C#设计模式学习笔记-单例模式(转)

    C#设计模式学习笔记-单例模式 http://www.cnblogs.com/xun126/archive/2011/03/09/1970807.html 最近在学设计模式,学到创建型模式的时候,碰到 ...

  8. 我的设计模式学习笔记------>单例模式(Singleton)

    一.前言 有些时候,允许自由创建某个类的实例是没有意义,还可能造成系统性能下降(因为创建对象所带来的系统开销问题).例如整个Windows系统只有一个窗口管理器,只有一个回收站等.在Java EE应用 ...

  9. Java设计模式学习01——单例模式(转)

    原地址:http://blog.csdn.net/xu__cg/article/details/70182988 Java单例模式是一种常见且较为简单的设计模式.单例模式,顾名思义一个类仅能有一个实例 ...

随机推荐

  1. JS中getElementByID,getElementsByName,getElementsByTagName的区别

    <input type="text" name="mynumber" id="mynum1" value="" / ...

  2. java类加载,简单认识

    java类加载,简单认识 在第一次创建一个类的对象或者第一次调用一个类的静态属性和方法的时候,会发生类加载 类加载期间,如果发现有静态属性,就给对应的静态属性分配内存空间,并赋值 这个过程完成之后,今 ...

  3. [转载]Cortana 设计指导方针

    来源:@微软中国MSDN,源地址:http://weibo.com/p/1001603898586285925224 使用语音命令,延伸 Cortana 与您的应用程序所提供的功能.启动应用程序,启动 ...

  4. asp.net mvc中的用户登录验证过滤器

    在WEB项目中建立 类:      public class LoginFilter : ActionFilterAttribute     {         public override voi ...

  5. [svc]nginx优化

    nginx的25条优化

  6. 随便浏览感觉简单易用的Orm

    https://www.cnblogs.com/babietongtianta/p/4365195.html CYQ ITDOS CHOLE.ORM

  7. 转:CentOS 6.x 挂载读写NTFS分区(fuse-ntfs-3g)

    from: http://mtd527.blog.163.com/blog/static/222723720151208127898/ 运行环境:CentOS 6.6  x64版本 CentOS不像F ...

  8. 智能引导式报错(Class file name must end with .class)

    转自:http://blog.sina.com.cn/s/blog_8e761c110101dyj3.html 在使用Eclipse时,有时会出现这样的错误,在使用智能引导式会报错An interna ...

  9. CCDictionary

    /** * CCDictionary is a class like NSDictionary in Obj-C . * * @note Only the pointer of CCObject or ...

  10. Lua官方文档与源码分析

    https://www.lua.org/source/5.3/ http://www.cppblog.com/airtrack/archive/2012/09/19/191233.html https ...