2011-08-16 9 views
0

私は次のコードを持っている:JavascriptのOOPサブクラスのヘルプや構造

(function(){ 

    var DS = (function(){ 

     DS.prototype.queryDB = function() { 
      alert('query database'); 
     }; 

     DS.prototype.openDB = function() { 
      alert('open the database'); 
     }; 

    }); 

    window.DS = new DS; 

})(window); 

私はその後、正常に動作します私のページからDS.queryDB()DS.openDB()を呼び出すことができます。

私が望むのは、機能をさらに分離するためにDS以内にデータベースクラスを持つことです。

DS.prototype.queryDBDS.prototype.Database.queryDBに変更しようとしましたが、動作していないようです。これを可能にするためにコードをどのようにして構造化するのがベストでしょうか?

+1

最初のステップとして、「DS.prototype.X」割り当て*をコンストラクタ関数の外に置きます。あなたのケースでは、インスタンスが1つしかないので違いはありませんが、そこに割り当てられるのは概念的に間違っています。 –

+0

また、匿名関数をすぐに実行する場合は、括弧で囲んでください。 – nickf

+0

私は今までhttp://jsfiddle.net/aw5mC/を持っています。 DS内でサブクラスを作成するにはどうすればよいですか? – fire

答えて

2

これを行うことができます。

このようにすることを検討してください。

DS.prototype = { 
    db : new Database() 
} 

function Database(){} 

Database.prototype = { 
    queryDb : function(){} 
} 
+0

+1、あなたの投稿は、typoがdbである必要があります:new Database() – Jules

+0

ああああ!頭のためのthx :) –

関連する問題