キーと値を使用して時間とキー データをグローバル オブジェクトに書き込み、このオブジェクトをグローバル配列にプッシュすることにより、キーアップとキーダウンの間、および次のキーストロークのキーアップとキーダウンの間の時間をキャプチャしようとしています。グローバルの理由は、keydown、keypress、keyup イベントにバインドされた関数間でパラメーターを渡す方法がわからないためです。各イベント ドリブン関数には、キー コードや入力された文字などのキーと値のペアとして 1 つのオブジェクトに保存したいデータがあります。各オブジェクトは 1 つのキーストロークを表しますが、前のキーストロークからの情報を含むか、計算に使用します。
最後に、グローバル配列の各要素のデータは、未定義または最後に入力されたデータのようです。
私の質問はなぜですか?
グローバルオブジェクト(キー値)を削除し、キーストロークごとに変化するグローバル変数に置き換えることで、問題を回避しました。次に、関数 (関数スコープ) 内にオブジェクトを作成し、そのオブジェクトを新しい文字ごとにグローバル配列にプッシュすることができました。うまくいくようです。本能的に、逆であるべきだと感じます。なぜこのように機能するのかを理解したいだけです。私は Zakas の本を 3 分の 1 読み終えましたが、まだまだ学ぶべきことがたくさんあります。