2011-02-10 4 views
2

こんにちは作業ではありませんいくつかの紹介サイトを通過私は自分のシステムのサンプルコードを作ったが、なぜ私はあなたの助けを求めているのか分からなかったいくつかのエラーを出している。私のコードは次のとおりです。Javascriptのプロトタイプは</p> <p>まあ、私はJavascriptをシングルトンのコンセプトに新たなんだし、その中で明確な知識が不足しているが、明確にすること。これは、JavaScriptのプロトタイプオブジェクトを理解する上で私のミスであるかどうか私にはわからない

referrelSystem = function(){ 
//Some code here 
}(); 

プロトタイプ機能:

referrelSystem.prototype.postToFb = function(){ 
//Some Code here 
}; 

私はプロトタイプが定義されていないというエラーを取得します!

すみません私はEDITは

私はこのように使用している

今、この権利を考えた:

referrelSystem = function(){ 
return{ 
     login:getSignedIn, 
     initTwitter:initTw 
    } 
}; 

は、これが問題を引き起こしていますか?

+0

あなたは 'referrelSystem'への最初の割り当てで何を返していますか?関数を返さない限り、 'prototype'プロパティはありません。 –

答えて

3

更新new referrelSystem()を呼び出すときに戻り値が破棄されるため、更新されたコードを参照するとreturnからreferrelSystemが期待どおりに機能しません。

var referrelSystem = function() { 
    // I assume you have other code here 

    this.login = getSignedIn; 
    this.initTwitter = initTw; 
}; 
+0

sorry()typo.itは質問にありません。 – Harish

+0

@ハリッシュ、よろしいですか?私はまだそれらのペアを参照してください;) –

+0

ええと私はちょうどもう一度プロトタイプ1が誤植だった!他は、そのことを指摘してくれてありがとうございました – Harish

3

私は、あなたがすぐに機能を実行するつもりはないと思うこれにそれらを変更します。

var referrelSystem = function(){ 
//Some code here 
}; 

(+ VAR、 - ())プロトタイプ関数で同じ

(ここには、既に存在するものに割り当てるため、varは必要ありません)

+0

+1は私よりもポイントです。 –

5

プロトタイプとJavaScriptのクラスを定義する典型的な方法は次のようになります:

function ReferrelSystem() { 
    // this is your constructor 
    // use this.foo = bar to assign properties 
} 

ReferrelSystem.prototype.postToFb = function() { 
    // this is a class method 
}; 

むしろオブジェクトを返すより、this(構成されますreferrelSystemのインスタンス)にこれらのプロパティを設定します

自己実行機能の構文(クロージャ)と混同されている可能性があります。これはあなたのクラスに "私的な"メンバーを持ちたいときに使用されます。あなたはこの閉鎖に宣言したものは唯一の閉鎖自体の中に表示されます:

var ReferrelSystem = (function() { 
    function doSomething() { 
     // this is a "private" function 
     // make sure you call it with doSomething.call(this) 
     // to be able to access class members 
    } 

    var cnt; // this is a "private" property 

    function RS() { 
     // this is your constructor 
    } 

    RS.prototype.postToFb = function() { 
     // this is a class method 
    }; 

    return RS; 
})(); 

私はあなたがライブラリを作成するに探しているなら、あなたがcommon module patternsを勉強することをお勧めします。

1

機能がreturn

プロトタイプ

プロパティとして動作するようにする必要があります。 これを見てくださいexampleここに

関連する問題

 関連する問題