# JS设计模式探索
# 单例模式
var singleton = {
name: 'hzf',
age: 24,
walk: function(){
console.log(this.age); //24
},
eat: function(){
//todo
}
}
- 不足之处:
- 没有什么封装性,所有的属性方法都是暴露的。
- 全局变量很容易造成命名空间污染。
- 对象一开始变创建,万一我们用不上就浪费了。
var person = function(){
// 这里声明私有变量和方法;
const privateVariable = '私有的外面获取不到';
function showPrivate(){
console.log(privateVariable);
}
//公有的变量和方法(可以访问私有变量和方法);
return {
publicMethod: function(){
showPrivate();
},
publicVar: '共有的外面能直接获取'
}
}
const single = person();
single.publicMethod(); // '私有的外面获取不到'
console.log(single.publicVar); // '共有的外面能直接获取'
← 堆内存 & 栈内存 npm & yarn →