我有以下代碼:功能陣列和奇怪的行爲
var arr = [{Name: "foo", action: function(){ alert("foo")}},
{Name: "bar", action: function(){ alert("bar")}}
]
var arr2 = {};
for(var i =0; i< arr.length; i++)
{
var bla = arr[i];
arr2[bla.Name] = function(){ bla.action() };
}
arr2.foo();
arr2.bar();
,提醒兩次「欄」。 當我反而做
arr2[bla.Name] = bla.action;
工作。
任何方式,使其工作在第一種情況下(我需要追加在我的函數其他事情)
謝謝!
修復它只是注意,'ARR2 = {}'實際上使'arr2'的對象。 –
@AlvinWong:他*應該*在這裏使用一個對象。他有字符串鍵。 – mpen
關閉。檢查此:http://stackoverflow.com/questions/111102/how-do-javascript-closures-work –