私のvarをパラメーターで匿名関数に設定しますか?
-
29-09-2019 - |
質問
私は最初のOO JSライブラリを構築していますが、おそらく非常に簡単な1つの作品で少し問題があります...
私はこれを持っています:
var storageLocker = function(catalog){
if(catalog){
this.catalog = catalog;
}
//my code...
}()
jqueryのような他のライブラリが要素を選択できる場所(私の場合はローカルストレージアイテムを選択してください)を実行し、その他の機能をチェーンできる場合に行う必要があります。私はそのすべてが機能していましたが、ベストプラクティスのために、そしてそれをより拡張可能にするために、後で匿名の関数に入れました。
storageLocker('localStorageItem').save({"item":"an example item saved to localStorageItem"})
しかし、今、私が今その構文でそれを行うと、このエラーが返されます。
Uncaught TypeError: Property 'storageLocker' of object [object DOMWindow] is not a function
何か案は?
解決
を削除します ()
関数本文の終わりに。
あなたが書いた var storageLocker = function(...) { ... }()
, 、匿名関数を作成する、 それを呼びます, 、および割り当て 結果 に storageLocker
.
それは同等です
function anonymous(...) { ... };
var storageLocker = anonymous();
関数が何も返さないので、 storageLocker
最終的になります undefined
, 、および機能ではありません。
所属していません StackOverflow