闭包应用场景----沙箱模式

//沙箱:是js一种设计模式,指的是一种封闭的空间,通常是一个自执行函数
    /*作用:
        a.提供不同的作用域 :避免全局变量污染
        b.模块化开发 :一个可以实现完整功能的独立空间(作用域)
     */
    (function (  ) {
        //自执行函数作用:开辟局部作用域,避免全局变量污染
        var num = 10;
        function fn (  ) {
            console.log ( "哈哈" );
        }
    })();


    //模块化开发:一个局部作用域可以完成一个独立的功能模块
    //沙箱内部如何与外部通讯? ----使用参数
   (function ( w ) {
        var person = {};
        person.name = '张三';
        person.eat = function (  ) {
            console.log ( "大吉大利,今晚吃鸡" );
        };
        person.play = function (  ) {
            console.log ( "人生如戏,全靠演技" );
        };
        /*为什么这里在调用匿名函数的时候将window作为参数传进来,而不是直接直接window呢?
        a.沙箱是一个独立的空间,如果在沙箱内部访问了全局变量,则会破坏封装性
        b.避免代码压缩的时候导致错误(有些工具会把函数中变量压缩成一个字母,节省空间)
         */
        w.person = person;
    })(window);

    console.log ( person );
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值