コードは次のとおりです。
$('input').click(function(){
window.array[$(this).attr('id')]=true;
console.log('Input id: '+$(this).attr('id')+' - Num:'+window.array.length+
' - Array value:'+window.array[$(this).attr('id')]);
alert(window.array.join('\n'));
});
動作は非常に奇妙です。イベントが発生すると、コンソールで読み取ることができInput id: example_id - Num:0 - Array value:true
、アラートで未定義になります(空の配列ですか?しかし、コンソールは正しい値を教えてくれました!)。
別の入力をクリックすると、前のイベントが発生していないなど、まったく同じことが起こります。コールバック関数は呼び出されるたびに配列を作成するようですが、私はウィンドウオブジェクトを使用しており、ウィンドウオブジェクトへの配列のアタッチはグローバル変数と同じであると言われました。
この奇妙な行動を説明してもらえますか?