2016-03-19 11 views
0

私は少し混乱していますし、完全に演算子「+ =」の意味を理解していないjsfiddles http://jsfiddle.net/7n3rtpqo/3/JSfiddleレッスン - 「 - =」下の関数と演算子

からコードです。以下の質問では、私は一般人の言葉で意味を要求したいと思います。

質問1(コード//質問1を参照してください):
列車が最高速度で進んでいるかどうかを確認するために私はこの機能を理解していません。これは説明できますか? 10より大きい場合、列車はより速く進むことができるので、次の行はtrainSpeedの値から10を引いたものです。

なぜ10で、なぜ減算するのですか?

質問2(コード2を参照してください):
最後の更新位置から毎回列車の位置が2px増加するのでしょうか?

私はまだJavaScriptを学んで新鮮です。したがって、私はそれを理解しようとしているので、必要に応じて素人の言葉で説明するといいです。

ありがとうございます!

var trainSpeed = 250; 
var trainPosition = 0; 
var animation; 

var train = document.getElementById("train"); 
train.addEventListener("click", speedUp); 

var stopButton = document.getElementById("stopButton"); 
stopButton.addEventListener("click", stopTrain); 


//Question 1 
function speedUp() { 
    if (trainSpeed > 10) { 
     trainSpeed -= 10; 
    } 
    console.log("train speed: " + trainSpeed); 

    clearInterval(animation); 
    animation = setInterval(frame, trainSpeed); 


//Question 2 
    function frame() { 
     trainPosition += 2; 
     train.style.left = trainPosition + 'px'; 
     console.log(trainPosition); 
     checkPosition(trainPosition); 
    } 
} 

function checkPosition(currentPosition) { 
    if (currentPosition === 260) { 
     alert("Crash!"); 
     console.log("Crash!"); 
     clearInterval(animation); 
    } 
} 

function stopTrain() { 
    if (trainPosition < 260) { 
     clearInterval(animation); 
     console.log("Whew! That was close!"); 
    } 
} 
+1

この質問はあまりにも広範であり、以前の基礎的な質問をカバーしています。あなたの質問を小さな質問に分解してください(「+ =」と「 - = 'はどのように働くのですか?)、それらの質問に対する回答を探してください(あなたはその質問を見つけるでしょう)。あなたの研究を行い、以前の答えを内面化しました。また、SOはチュートリアルスタイルの情報のための良い場所ではないので、最初にいくつかの基本的なチュートリアルを通して作業することを検討してください。 –

+0

@TJCrowder私は実際にどのように動作するか理解しています。問題の機能(特にQ1)がどのように機能しているのか分からなかったので、ちょっとした説明が必要でしたが、私はそれを得ました。しかし、アドバイスをありがとう。 – intrepido

答えて

2

hah。コードは欺瞞的です。列車の速度はではなく、列車の速度です、列車の位置の各計算の間に遅延です。これは、私は、コードの作者だった場合、私はむしろ、名前を変更したい行に

animation = setInterval(frame, trainSpeed); 

setIntervalへの2番目のパラメータはミリ秒単位で、frame関数が呼び出される頻度を決定します。)

を証明されます変数trainSpeedtrainDelay

+0

私は最終的にあなたの答えから何を意味するかを得たと思います。私はアニメーションを再生した後でコンソールを見ました。これは私がそれが意味すると信じているものです: 各位置間を移動する列車の初期遅延は250msです。 最初とその後のクリックで遅延が10ms減少し、列車の移動が速くなります。 遅延が10msに達すると、それ以上の減算は行われません(列車は最高速度になります)。 このご意見ありがとうございます。 – intrepido