開発中に遭遇する1つの問題は、コードのデモ次のように:
ファイルの内容をtest.js:
1件の VARの B = getHomeCity()。
ファイルのtest.htmlという内容:
1 <!DOCTYPE HTML> 2 <HTML> 3 <ヘッド> 4 <タイトル>テストHTMLページ</タイトル> 5 ます。<script type = "text / javascriptの" SRC = "test.js"> </ SCRIPT> 6 <スクリプトタイプ= "テキスト/ javascriptの"> 7 8 ( 9 関数(ウィンドウ){ 10 アラート(B); 11 } 12 )(ウィンドウ) 13 14 機能getHomeCity(){ 15 リターン 10 。 18は、 </ head>の 19。 <身体> 20であるが 、<! - -ここに入れた> 21が </ BODY> 22である </ HTML>
実行結果:
コンソールを開き、エラーが見つかりました:
getHomeCity()は未定義:
その後、私は位置のビットgetHomeCity()関数を変更しました:
1 <!DOCTYPE HTML> 2 <HTML> 3 <ヘッド> 4 <タイトル>テストHTMLページ</タイトル> 5 <スクリプトタイプ= "テキスト/ javascriptの"> 6 関数getHomeCity(){ 7 リターン 10 。 8 } 9 </スクリプト> 10 <スクリプトタイプ= "テキスト/ javascriptの" SRC = "test.js"> </ SCRIPT> 11 <スクリプトタイプ= "テキスト/ javascriptの"> 。17 )(ウィンドウ); 18である 19。 </ SCRIPT> 20である </ head>の 21はある の<body> 22がされる < - -ここに入れた!> 23である </ BODY> 24 </ HTML>
結果:
同じ関数呼び出しのスクリプトコードブロック:
1 <!DOCTYPE HTML> 2 <HTML> 3 <ヘッド> 4 <タイトル>テストHTMLページ</タイトル> 5 <スクリプトタイプ= "テキスト/ javascriptの"> 6 7 VAR = B getHomeCity()。 8 ( 9 関数(ウィンドウ){ 10 11 アラート(B); 12 } 13 )(ウィンドウ) 14 関数getHomeCity(){ 15 リターン 10 。 16 } 17 </スクリプト> 18 </ head>の 19。 <身体> 20 <! -ここに入れた- > 21である </ BODY> 22である </ HTML>
結果:
結論:
同じブロック内のスクリプトコードは、関数は、関数を実行することができ、後リフト関数定義、関数定義エディトリアルの原理によれば、互いを呼び出したりすることができ
しかし、そうでない場合は、状況は未定義表示され、関数を呼び出す前に関数を定義するようにしてください、別のスクリプトコードブロック間の関数を呼び出します。