代码如下:
$('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
,然后在警报中我得到 undefined (空数组?但控制台告诉我正确的值!)。
当我单击另一个输入时,会发生完全相同的事情,例如尚未触发上一个事件。似乎回调函数每次调用时都会创建一个数组,但我使用的是窗口对象,并且有人告诉我将数组附加到窗口对象与全局变量相同!
你能解释一下这种奇怪的行为吗?