ModulePatternやRevealingModulepattenのような「クラス」タイプのJavaScript関数を書き始めました。これにより、「new」の使用が回避され、どの関数が1か所で公開されるかを定義できます。ただし、このパターンでパブリックデータメンバーを使用およびアクセスする方法を確認できませんでした。
たとえば、以下のメンバー'id'はmyobj.getId()からアクセスできますが、myobj.idは未定義です。
function setup(){
var myobj = MyObject();
myobj.initialize();
alert(myobj.getId()); // returns 3, as expected
alert(myobj.id); // returns undefined
}
function MyObject(){
var id;
function initialize(){
//do some stuff that initializes data including...
id = 3;
}
return{
initialize:initialize,
id:id,
getId:function(){ return id;}
}
}
initialize()で設定された値を返すようにmyobj.idを機能させる方法はありませんか?