ある日、ゲームのプログラミング中に誤ってこれに出くわしました。
var foo = function() { alert("Hello, World!"); }
foo[0] = "Zero";
foo[1] = "One";
foo[2] = "Two";
foo[3] = "Three";
foo(); // Alerts "Hello, World!"
alert(foo[2]); // Alerts "Two"
JavaScript でこれができるのはなぜですか? これはグリッチですか?