http://www.ruanyifeng.com/blog/2012/10/javascript_module.htmljavascript
function f1() { // do sth.. } function f2() { // do sth.. }
缺点:污染全局变量;可能和其余模块发生冲突;模块中的成员之间看不出关系。html
var module1 = new Object({ _count : 0, f1 : function() { //.. }, f2 : function() { //... } });
缺点:改变了模块内部状态;例如module1._count = 5。不符合“开闭原则”。java
沙盒便是隔离的环境。在JS就是(function(){})。
当即执行函数(IIFE, Immediately-Invoked Function Expression)就是沙盒()。函数
var module1 = (function() { var _count = 0; var f1 = function() { //.. }; var f2 = function() { //.. }; return { f1 : f1, f2 : f2 }; })();