2012-01-09 6 views
2

パラメータが、私は見つけることができるすべては、CとBashなどに関する質問です 理解機能は、これはおそらく、前に頼まれてい

基本的に私は本当につらい時、関数のパラメータのまわりで私の頭を取得し、彼らが参照を持っています。

私は通常、関数を呼び出すときにパラメータを設定することを知っています。 doSomething(3,'Hello')などですが、チュートリアルのコードを読むときはそうです。

setSquare()から thisSquareのパラメータを取得している
window.onload = initAll; 

function initAll() { 
    if (document.getElementById) { 
     for (var i=0; i<24; i++) { 
      setSquare(i); 
     } 
    } 
    else { 
     alert("Sorry, your browser doesn't support this script"); 
    } 
} 

function setSquare(thisSquare) { 
    var currSquare = "square" + thisSquare; 
    var colPlace = new Array(0,0,0,0,0,1,1,1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,4); 
    var colBasis = colPlace[thisSquare] * 15; 
    var newNum = colBasis + getNewNum() + 1; 

    document.getElementById(currSquare).innerHTML = newNum; 
} 

function getNewNum() { 
    return Math.floor(Math.random() * 15); 
} 

+0

あなたは 'setSquare(i)'を呼んでいますか?あなたの質問が完全にわからない。 –

答えて

1

です。最初の関数initAll()では、setSquare(i)を呼び出しています。この場合、iがパラメータです。 initAll()によれば、iは、ループ内の数字である。基本的には、0〜24の各正方形に対してsetSquareを呼び出すということです。

setSquare()関数の名前がthisSquareに変更されました。今度は、setSquare()関数のどこにでも、thisSquareは、iと同じ値に設定されています。

希望、幸運を願っています。

+0

かなり完璧です...私は明確な答えが大好きです... bravo ..... setSquare(i)に関して気にしないならば、もう1つの質問は、関数が呼び出される前に基本的に関数を呼び出すことです作成した? –

+0

@ 17bc17:いいえ、JavaScriptインタプリタはスコープの上部に 'function'定義と呼ばれる"ホイスト "を定義します。実際にコードを実行する前に、インタプリタは次のように変換します。http://pastie.org/3157006 – PPvG

+0

@PPvg - 返信いただきありがとうございます。これについてもっと詳しく説明するリンクはありますか?私はこれについてはかなり新しいです。 –

1

initAllの内側に次のコードがあります:

for (var i=0; i<24; i++) { 
    setSquare(i); 
} 

のでinitAllsetSquare 24回を呼んでいます。毎回iの値を渡します。 (0,1,2など)。したがって、iの値はthisSquare

0

setSquareは0からページを(理論的に)ロードされたときinitAll関数が呼び出された23に、値を通過する、initAll関数で呼び出されています。

0

それは、この場合にinitAll()機能にforループからそれを得ているが、それはあなたがsetSquare関数からthisSquareのパラメータを取得setSquareさ

0

を呼び出すどこからそれを得ることができますか?右ここ

:setSquare機能currSquareインサイドsetSquare(i);

は、(例えば、currSquare1)ドム要素のidされて終わります。

関連する問題