カプセル化。関数外から関数内の変数にアクセスする。
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してあげれば、それを利用して関数内の変数にアクセスすることができる。