- ベストアンサー
クラスを何重にも作りたい
topLvClass.lv2Class.lv3Class.myFunc(); のような位置に関数を作りたいのですが、どうすればいいのでしょう。 一重に作るときは次のようにしているのですが・・・。 var topLvClass = new topLvClass; function topLvClass() { this.myFunc = function() { } } よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#221739
回答No.2
別解。 vb で言う所の project ファイル名を topLvClass_lv2Class として。 それに対応する 名前空間 を topLvClass.lv2Class とする。 topLvClass_lv2Class に内包される クラスファイル名 が lv3Class であるとするならば、そのクラスファイル内に myFunc ってな public サブルーチンだとか、public property を作成してやれば、topLvClass.lv2Class.lv3Class.myFunc() という指定も成立するんじゃないか、と。
その他の回答 (1)
- dyna_1550
- ベストアンサー率34% (122/353)
回答No.1
実際には試していないので間違っているかもしれません。 topLvClass.lv2Class 上記は、topLvClass のプロパティにアクセスしていますので、 「lv2Class」という名前のプロパティを持っていることになります。 そして、それがオブジェクトで、「lv3Class」という名前のプロパティを 持っている。 という感じだと思います。
質問者
お礼
なるほど、プロパティとして扱えばいいんですか、試してみます。ありがとうございます。
お礼
なるほど、ネームスペースを使った方が良さそうですね。 というわけで、 topLvClass = function() {}; topLvClass.lv2Class = function() {}; topLvClass.lv2Class.lv3Class = function() {}; topLvClass.lv2Class.lv3Class.myFunc = function() {}; のようにしたところ、うまくいきました。 ありがとうございます。