2016-06-17 10 views
0

は、コンソールはHello Worldのを印刷しますが、このサンプルでは jQueryの.ready()関数は、すべての関数式をホストしていますか?ここ

$(document).ready(function(){ 
    printHelloworld(); 
});  
var printHelloworld = function(){ 
    console.log('hello world'); 
} 

のjQuery

の擬似コードです。

私の質問は、使用する前に関数式を割り当てる必要がありますが、このサンプルでは、​​割り当て前にprintHelloworld()を使用しました。 .ready()関数は何をしているのか分かりません。それは機能を持ち上げるために何かをしましたか?

+0

名前が示すように、文書準備機能は、文書の準備が整うと実行されます。その時までに、これはprintHelloworldにアクセスできます。これは、これがグローバルに宣言されているからです。 https://learn.jquery.com/using-jquery-core/document-ready/をチェックしてください。 –

+0

この機能は後で削除されますが、すべての文書が読み込まれた後でのみ動作するように機能します –

答えて

0

varは、機能(またはスクリプト)の先頭にprintHelloworld機能宣言を持ち上げました。 $(document).ready()ステートメントの後で代入するまで初期化されませんでしたが、readyに渡された無名関数は引き続き変数への参照を保持していました。関数が実行されるまでに、変数printHelloworldが初期化され、使用可能になりました。

参照:任意のコードが実行される前に、変数の宣言(および一般的に宣言)がコード内の任意の場所の変数を宣言し、処理されるのでhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var

は上部でそれを宣言することと等価です。これは、変数が宣言される前に使用されているように見えることを意味します。

関連する問題