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 }; })();