1.简单单例模式:
只能实例化一次的对象也就可以使用“对象字面量”的定义方式来实现:
var singleton = {
attribute:'',
method:function(){}
}
这样定义的对象,不能使用new singleton的方式来生成另外的对象(不存在prototype和constructor属性)。
2.包含私有成员的单例模式:
如果看过之前的我写的关于类成员的文章,自然的我们就能想到用闭包来实现,既然要用的闭包,那么一定会用到函数和函数返回值,于是,这样的单例模式如下:
var singleton = function(){
var private_attribute = '';
functioin private_method(){}
return {
public_attribute:'',
public_method:function(){}
};
}
还记得匿名函数吗?通常在使用闭包的时候会使用,改进之后如下:
var singleton = (function(){
var private_attribute = '';
functioin private_method(){}
return {
public_attribute:'',
public_method:function(){}
};
})();
3.惰性加载(lazy loading,延迟加载)单例模式
2,3中所示单例模式定义方式都是在定义时创建的单例,这样很浪费内存,如何能在使用的时候才创建(lazy loading,更多的用于图片的延迟加载)呢?所谓惰性加载,也就是先定义,然后在某个地方才创建对象,所以必须要使用函数,我们知道在java或者php中单例模式通常使用一个静态方法来创建,同理,我们再改进一下闭包形式的定义式:
var singleton = (function(){
var unique;
function getinstance(){
if(!unique){
unique = construct();
return unique;
}
}
function construct(){
var private_member;
function private_method(){}
return {//这里才是真正的单例对象
public_member:'',
public_method:function(){}
};
})();
分享到:
相关推荐
为了帮助大家快速和较好地理解JavaScript设计模式中的单例模式,本文对JavaScript的单例模式进行了分析并进行简易的代码演示,希望本文能够给有需要的人带来一点小小的帮助。
JavaScript的单例模式 (singleton in Javascript)
本篇文章简单介绍了JavaScript设计模式中的两种,分别是单例模式和观察者模式,并且举了例子便于理解,希望大家一起交流,共同进步。
首先,了解一下什么是单例模式,这里我直接把软件开发网中的定义给copy过来: 单例模式(Singleton Pattern)是 Java 中最简单的...用一句话来总结就是:在单例模式中,一个类仅有一个实例,并提供一个访问它的全局访
轻松把握JavaScript单例模式_.docx
单例模式的例子:闭包实现私有成员的单例模式例子:var Ellyliang = (function() {闭包实现私有成员的惰性实例化单例模式:var Elly
单例模式也称作为单子模式,更多的也叫做单体模式。为软件设计中较为简单但是最为常用的一种设计模式。 单例模式的介绍: 在应用单例模式时,生成单例的类必须保证只有一个实例的存在,很多时候整个系统只需要拥有...
主要介绍了JavaScript实现单例模式实例以及代码讲解,有需要的读者们跟着学习参考下吧。
这一次重温一下《JavaScript设计模式与开发实践》,开篇为单例模式。 /** * pre 单例模式 * 定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点 * 应用:单例模式是一种常用的模式,有一些对象我们...
单例模式是JavaScript项目中最常用的设计模式之一,下面罗列了JavaScript实现设计模式中的单例模式的一些技巧总结,包括惰性加载与分支技术等,需要的朋友可以参考下.
JavaScript应用实例-单例模式.js
今天在复习设计模式中的-创建型模式,发现JS实现单例模式的方案有很多种,稍加总结了一下,列出了如下的6种方式与大家分享 大体上将内容分为了ES5(Function)与ES6(Class)实现两种部分 单例模式就是在系统中...
本文将介绍Javascript模式中较为常见和实用的模式——单例模式,主要分为概念和实例部分。在介绍实例的同时也会对代码中额外的知识点进行讲解。需要的朋友可以看下
本文实例讲述了JavaScript设计模式之单例模式原理与用法。...全局变量不是单例模式,但在JavaScript开发中,经常会把全局变量当成单例来使用。 使用var a = {};这种方式创建对象a时,对象a是独一无二的,
主要介绍了javascript单例模式的简单实现方法,以javascript创建唯一实例的形式分析了javascript单例模式的简单实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
本文实例讲述了JS 设计模式之:单例模式定义与实现方法。分享给大家供大家参考,具体如下: ...在日常的开发中,我们遇到的单例模式可能有:Vuex 中的 Store,Vue 的根实例,任何导出单个对象的 ES6 模块等。 字面量
javascript面向对象,单例模式视频讲解,含ppt视频代码片段。