- 首页 > it技术 > >
//沙箱:是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 );
推荐阅读