单例模式
- 字面量创建对象
```js
const obj = {
init:function(ops){}
}
obj.init({});
obj.init({});
obj.init({});
```
- 封装成函数(闭包函数)
```js
const alert = (function(){
const obj = {};
return function(ops){
return obj;
}
})();
const a1 = alert({});
const a2 = alert({});
const a3 = alert({});
```
- 借助函数自身
```js
function alert(){
if(!alert._obj_){
alert._obj_ = {}
}
alert._obj_.xxx = "hello"
alert._obj_.yyy = function(){}
return alert._obj_;
}
const a1 = new alert();
const a2 = new alert();
const a3 = new alert();
```