博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript的单体模式(零)
阅读量:6802 次
发布时间:2019-06-26

本文共 1244 字,大约阅读时间需要 4 分钟。

  hot3.png

掉了这个模式了,补上。

实现一个简单的单体结构:

var Student = {    age: 10,    name: '张三',    getAge: function(){       return this.age;    },    getName: function(){       return this.name;    },}console.log(Student.getAge()); //目的达到了,可以获取信息,但是没有保护,我只是让你获取姓名,你却可以修改Student.name = '李四'// 使用闭包来私有化,阻止外界访问var Student = (function(){    var _name = '张三';    var _age = 10;    function _getAge(){return _age}    function _getName(){return _name}        return {         getAge: function(){return _getAge()},         getName: function(){return _getName()}    }})()console.log(Student.getAge()) //这样就安全了、、//这样虽然功能实现了,但是性能还待优化,我为何不能在使用的时候才初始化实例呢?也就是所谓的惰性加载var Student = (function(){    var _instance;    function constructor(){        var _name = '张三';        var _age = 10;            function _getAge(){return _age}        function _getName(){return _name}            return {            getAge: function(){return _getAge()},             getName: function(){return _getName()}        }    }    return {        getInstance: function(){                   return _instance || (_instance = constructor());        }    }})()console.log(Student.getInstance().getAge()) //哈哈,有意思把?

单体模式优点:

1.  可以来划分命名空间,从而清除全局变量所带来的危险,不污染全局变量。

2. 惰性加载实例。

转载于:https://my.oschina.net/shyl/blog/678599

你可能感兴趣的文章
HTTP的post和get总结
查看>>
CEPH Cache Tiering
查看>>
Oracle 11g新特性之--Server Result Cache
查看>>
Oracle中的ORA-01548: active rollback segment '_SYSSMU1$' found
查看>>
AngularJs $anchorScroll、$controller、$document
查看>>
Microsoft资源
查看>>
WordPress 永久链接或固定链接设置技巧
查看>>
数据结构之线性表
查看>>
在PPT中插入FLASH遇到的系列问题
查看>>
2018CCTV网络春晚:胡晓明携阿里云ET城市大脑给大家拜早年啦!
查看>>
佳能牌(Canon)打印机安装时在 Windows XP中测试显示页面的程序(软件编写)
查看>>
2015百度之星 下棋
查看>>
常用的CMD命令
查看>>
搭建网站必不可少的知识11
查看>>
python下的MySQLdb使用
查看>>
CCNP路由实验---4、配置EIGRP不等价均衡
查看>>
Fedora20下安装vim
查看>>
CentOS 6.5 使用docker 容器
查看>>
pl/sql中的exception
查看>>
Android开发:通过AdbWireless,不用数据线连接到安卓手机进行调试
查看>>