看了好多网上的文章,基本上得到一个结论:一些写类工具函数或框架的写类方式本质上都是 构造函数+原型
1.用构造函数来定义类属性(字段)。
2.用原型方式来定义类的方法。
具体文章请参阅
JavaScript的写类方式(1)
http://www.cnblogs.com/snandy/archive/2011/03/06/1971764.html
一、下面我们看一下单例模式
(1.)这个网站对单例模式是什么描述的
(http://www.codingserf.com/index.php/2015/05/javascript-design-patterns-singleton/)
在JavaScript里,单例模式(the Singleton Pattern)非常简单,简单到可以被忽略,但是它在技术层面是如何工作的,我们还是有必要了解一下的。单例的代码写在一个单独的对象里,因此你不需要去实例化一个新对象就可以在任何你需要的时候使用它的资源,单例允许在全局范围内访问它的资源。
在JavaScript里,我们常在管理命名空间时使用单例模式,它可以降低你在代码中创建全局变量的数量。单例模式在JavaScript里要比在其他语言中更有用,因为它可以用命名空间来降低全局变量所带来的风险。
一个基本的单例模式
这是一个最基本最简单的用JavaScript实现的单例模式。它就是一个简单的有一些方法和属性的对象字面量,假想它们是因为某种关系才被放到一起。
结论:使用单例模式管理命名空间非常简单。同样你可以仅仅通过创建一个对象字面量就搞定:
(2.)这个网站对单例模式是什么描述的
http://frontenddev.org/link/javascript-design-mode-7-appearance.html
单例模式的意思是只需要实例化某个类一次,它的方法也比较简单,通过判断某个类是否已经被实例化了,再返回该值。可以通过各种方法来实现单例模式,
结论:在使用单例的模式我们可以考虑一下几点,以帮助你判断是否应该采用此模式构建你的项目:
- 当类只能由一个实例,并且它很容易从公共访问点对它进行访问时候。
- 该类的实例是可以通过子类化进行扩展的,并且客户无需更改代码就能使用一个扩展的实例的时候。
(3.)这个网站对单例模式是什么描述的
http://blog.chinaunix.net/uid-26672038-id-3886959.html
实现1: 最简单的对象字面量
实现2:构造函数内部判断
实现3 : 闭包方式
(4.)又来了一个描述
http://www.cnblogs.com/yupeng/archive/2012/09/06/2673683.html
单例要求一个类有且只有一个实例,提供一个全局的访问点。因此它要绕过常规的控制器,使其只能有一个实例,供使用者使用,而使用着不关心有几个实例,因此这是设计者的责任
In JavaScript, Singletons serve as a shared resource namespace which isolate implementation code from the global namespace so as to provide a single point of access for functions.
在javascript中,单例被当做一个全局的命名空间,提供一个访问该对象的一个点。
看到这里我们大致可以总结出单例模式的有哪些特征:
有且只有一个实例,只需要拥有一个全局对象
实现方式大致有3种
1: 最简单的对象字面量
2:构造函数内部判断
3 : 闭包方式