//字面量标签:function,return,函数,getInstance,js,instance,单例,设计模式,name From: https://www.cnblogs.com/itzhijia/p/17938156
const logi = {
name: "贾维斯",
password: '123456',
method: function () {
}
}
/**
* 闭包:
* 1. 闭包是指有权访问另一个函数作用域中的变量的函数
* 2. 创建闭包的常见方式,就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量,
* 优点:
* 1、读取函数内部的变量
* 2、持久化存储
* 缺点:
* 1、不安全
* 2、不利于代码的维护和扩展
* 3、造成内存泄漏(IE)
*/
const single = (function () {
let instance;
function getInstance() {
//保证对象的唯一性
if (instance === undefined) {
instance = new Construce();
}
return instance;
}
function Construce() {
//生成一些代码
return {
name:"雷神",
getName() {
return this.name;
}
}
}
return {
getInstance:getInstance
}
})()
console.log(single.getInstance().name)
console.log(single.getInstance().getName())