📖 目录

发表于:{{calc_time_ago(blog['b_created_at'])}}
范仁义js课程---56、闭包应用?
1、闭包可以做缓存,使用对象时候,缓存里面如果没有的话,就新建对象到缓存,如果缓存里面有,就直接从缓存里面拿,这样就可以节约新建对象耗费的资源
2、闭包可以实现变量的访问权限。我们可以让封装对象中的变量不能直接访问,而通过提供的闭包中的方法来访问。
一句话总结:
//1、作为缓存
// var Cache1=(function(){
//     var cache={};
//     return {
//         getObj:function(name){
//             if(name in cache){
//                 return cache[name];
//             }
//             var temp=new Object(name);
//             cache[name]=temp;
//             return temp;
//         }
//     }
// })();
// console.log(Cache1);
// console.log(Cache1.getObj('乔碧萝'));
// console.log(Cache1.getObj('凤姐'));
// console.log(Cache1.getObj('乔碧萝'));

//2、实现封装过程。封装对象中的变量不能直接访问,可以用提供的闭包来访问。
var person=function(){
    var name="no name!";
    return {
        getName:function(){
            return name;
        },
        setName:function(value){
            name=value;
        }
    }
}();
console.log(person);
console.log(person.getName());
person.setName('武松');
console.log(person.getName());
person.setName('老虎');
console.log(person.getName());
公开 私有