カプセル化。関数外から関数内の変数にアクセスする。

JavaScriptカプセル化

var createBeans = function(arg){
 var obj = arg;
 return {
   get:function(){return obj;},
   set:function(arg){ obj = arg}
  };
};

var javascriptBeans = createBeans(0);

//クロージャを利用して関数内の変数objに1を設定する
javascriptBeans.set(1);

//クロージャを利用して関数内の変数を取得する(1が取得される)
alert(javascriptBeans.get());

createBeans関数で定義されているobjは、関数外部からアクセスすることはできず、関数内からのみアクセスすることができる。
なので、関数内の関数(クロージャ)を関数外にreturnしてあげれば、それを利用して関数内の変数にアクセスすることができる。