侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

javascript的单体模式(零)

2024-05-12 星期日 / 0 评论 / 0 点赞 / 87 阅读 / 1728 字

掉了这个模式了,补上。 实现一个简单的单体结构: var Student = { age: 10, name: '张三', getAge: function(){ ret

掉了这个模式了,补上。

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

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. 惰性加载实例。

广告 广告

评论区