2010-11-29 5 views
0
私は私の最初のOO JSライブラリと、おそらく超簡単だ一枚と少し問題が発生したイムを構築しています

...私のvarを無名関数にパラメータで設定しますか?

私はこれを持っている:

私は何をすることができる必要があり
var storageLocker = function(catalog){ 
    if(catalog){ 
     this.catalog = catalog; 
    } 
    //my code... 
}() 

jQueryのような他のライブラリでは、要素を選択できます(私の場合はlocalStorageアイテムを選択します)。私はすべてのこと作業を持っていましたが、ベストプラクティスのために、後に、私は匿名関数に入れて、それをより拡張性にするために、今私はの構文持ってする方法を見つけ出すことはできません。今の場合

storageLocker('localStorageItem').save({"item":"an example item saved to localStorageItem"}) 

をが、私は今この構文でそれを行う:それはこのエラーを返します:

Uncaught TypeError: Property 'storageLocker' of object [object DOMWindow] is not a function 

すべてのアイデア?

+0

私はこれに関するあなたの他の質問を読んで、プライベート変数を使用する場合は、closureで作業する必要があります。つまり、最後に_with_ '()'を使用する必要がありますが、実際のロジックを処理する内側から2番目の関数を返す必要があります。他の質問には良い例がありました。 – jwueller

答えて

4

ファンクションボディの末尾にある()を削除します。

あなたがそれを呼び出す 無名関数を作成し、storageLockerから結果割り当てvar storageLocker = function(...) { ... }()を、書きました。

機能がstorageLockerundefinedなってしまう、何も返さない、と関数ではないんので、それは

function anonymous(...) { ... }; 
var storageLocker = anonymous(); 

に相当します。

+0

Awn ... duh ...ありがとう:) –

+0

@Oscar:ようこそ。あなたはこの答えを受け入れるべきです。 – SLaks

+1

試しましたが、10分待たなければなりません:) –

関連する問題