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

//沙箱:是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 );

    推荐阅读