什么是单例模式
单例模式可以理解成一个构造函数,无论进行多少次实例化都指向一个实例
实现方式
在第一次实例化之后通过给构造函数绑定一个静态属性来指向第一次的实例化对象,当第二次再实例化的时候将这个静态属性返回出去
ES5
function Terminator(name, height, target) {
// 如果标记不为 undefined 则直接返回之前创建的实例
if( Terminator.flag ) return Terminator.flag;
// 如果是第一次
this.name = name;
this.height = height;
this.target = target;
// 用静态属性标记是否被执行
Terminator.flag = this;
}
var robot1 = new Terminator('T800', '190cm', 'Sarah Connor');
var robot2 = new Terminator('T900', '200cm', 'John')