curry 实现惰性加载单例的方法:
1 创建得到单例的工厂方法
var getSingle = function(Contructor) {
var result = null;
return function() {
return result || (result = new Contructor());
};
};
2 获取对应单例的构造函数
function List() {
this.name = '';
List.prototype.getName = function() {
return this.name;
};
}
var creatSingleList = getSingle(List);
3 这样便可以动态创建这个单例(如在点击鼠标之后)
var btn = document.getElementById("btnTest");
var singleList = null;
btn.onClick = function () {
singleList = createList();
};