2011-06-22 5 views
1

私は、次のコードを使用して、クラスのインスタンスを作成しています:名前空間クラスとインスタンスのjavascriptの規約?

test = new function(){ 
    ... 
    } 

それは無名関数から作成されたためしかし、ベースはプロトタイプを持っていない(私はこれを推測している理由です?)。これにより、インスタンスのパブリック関数を作成することができなくなります。

あなたは、私は単に行うことによってこの問題を回避でき主張することができます:

function testClass(){ 
    ... 
    } 
    test = new testClass() 
をして、TestClassをするパブリック関数を取り付けます。 しかし、これは私に不必要な名前空間を強制します。特に、私のクラスthis.is.a.spaceに名前を付けると、私は自分のインスタンスと何を呼びますか? this.is.a.spaceInstance? this.is.a.space.Instance?

このような種類のコンベンションはありますか?

test.foo = function() { return 1 }; 

Iを:あなたも、単に使用できるよう

test = new function(){ 
    ... 
}; 

test.__proto__.foo = function() { return 1 }; 

ただし、インスタンスを1つだけ持っている:

+0

ちょうどニックピック、あなたはクラスを作成していません。 JSにはクラスはありません。また、これは良い読書です:http://mckoss.com/jscript/object.htm – JohnP

+1

あなたは** TestClass **やlower camel case ** testClass **のような上のラクダのケースであなたのクラスを作ることができます、あなたの質問を正しく理解していれば –

+0

@Asad クラスとインスタンスの違いは実際には最初の文字の大文字小文字の違いですか?それは...デバッグ中に賢明でなく、実際にはエラーが起こりやすいようです。 –

答えて

0

あなたはまだ無名関数をコーディングし、このようにそのプロトタイプにアクセスするために.__proto__を使用することができます正確に何を達成しようとしているのかは完全には分かりませんが、命名に関しては、someVariableの行に沿ってSomeClassや他の変数(インスタンスのような)のようなクラスを指定するのが普通です。 JavaScriptでは大文字と小文字が区別されるため、TestClass/testClassを使用できます。

関連する問題