2016-05-13 6 views
0

ホイスト関数に従って、式を定義する前に呼び出すことはできません。 IIFEが定義される前にIIFE関数にアクセスしようとしているモジュールを作成しました。 私の理解によれば、cookieManager.setPerstistentCookieは関数ではなく、正常に動作するというエラーがあったはずです。なぜですか?関数式が定義される前に関数式を使用することができます

+1

*タイミングワイズ* '$(..)' $()は '明示的にあなたのケースで起こっていないために起こるDOMロードする、のを待つためと考え'、残りのコードの後に​​実行されなければなりませんまだ。 (今は文章です) – deceze

+0

割り当てられる前にそれを呼び出せば、エラーが表示されます。 * cookieManager *が定義されている限り(それは* var *で宣言されています)、あなたは大丈夫です。 – RobG

+1

関数式は持ち上げられません。宣言だけがホストされます。 – Amit

答えて

2

cookieManagerを参照する関数をjQueryの「準備完了」ハンドラにラップしました。そのコードは、DOMが準備ができるまで実行されないので、その時点でオブジェクトが定義されます。あなたはそれが定義される前にそれを使用していない、換言すれば。私の悪いが、私はそれが動作していないと私は解釈して、それが機能していないはずです掲揚について正しかった

+0

これは実際に依存するべき動作ではないことに注意してください。 – deceze

+0

また、cookieManagerはIIFE – brk

+1

@ user2181397です。これは無関係です。 RHSが評価され、値が返されますが、それがIIFEか他のタイプの式かどうかは重要ではありません。 – RobG

0

申し訳ありませんが、みんな。 誤って削除するのを忘れた$(function(){})スニペットの上に同じスクリプトスニペットをコピーしていたので、どのように働いたのかという理由がありました。 何か助けていただきありがとうございます。

関連する問題