zoukankan      html  css  js  c++  java
  • javsscript闭包的一种使用场景--沙箱

    ​
    //沙箱:模块化,沙箱是一个隔离的环境,最大的好处就是避免全局变量的污染.
    var model = (function () {//一个匿名的立即执行函数
        var price = 900;//这是一个model局部的变量,外界无法访问,无法修改
        //有效的保障了属性的安全性
        return {
            pay: function (money) {
                if (money < price) {
                    console.log("您的消费不够,请继继续消费");
                } else {
                    console.log("恭喜成为VIP");
                }
            }
        }
    })();
    console.log(model.pay(800));//"消费不够.."   undefined  
    model.pay(1000);//"VIP..."
    //千万注意不用打印,pay函数本身就有输出,如果在console.log中
    //会输出函数的返回值.
    
    //在面向对象中使用沙箱
    //应用场景:在页面初始化的时候要用到f1,f2,f3三个函数
    //这三个函数不想让外界访问,需要把这单个方法声明成为构造函数
    //内部私有的变量
    var songManger = (function(){
        function f1(){
            console.log("函数f1的方法");
        }
        function f2(){
            console.log("函数f2的方法");
        }
        function f3(){
            console.log("函数f4的方法");
        }
        function SongManger(){//声明一个构造函数
        }
        SongManger.prototype={//在原型对象上扩展方法
            init:function(){
                f1();
                f2();
                f3();
            }
        };
       // return SongManger;//注意这个返回的是构造函数,使用之前需要先实例化一下
        return new SongManger;//把构造函数返回,实例化一下,这样外边就不需要实例化了
    })();
    songManger.init();//
    ​
    

      

  • 相关阅读:
    SpringCloud 天气预报系统 Quartz集成
    阿里云maven镜像库配置(gradle,maven)
    天气接口
    spring boot @ConditionalOnxxx相关注解总结
    为什么不应该使用ZooKeeper做服务发现
    Spring cloud系列十四 分布式链路监控Spring Cloud Sleuth
    Spring Cloud Sleuth Zipkin
    Spring Cloud Sleuth Zipkin
    标签系统
    简述 OAuth 2.0 的运作流程
  • 原文地址:https://www.cnblogs.com/itlyh/p/6045765.html
Copyright © 2011-2022 走看看