2012-08-28 72 views
-6

iD是一個在循環中每次迭代都會改變的對象。我也在這個循環中運行以下代碼:這是在JavaScript中形成閉包的正確方法嗎?

$("td.item_holder > div").append(dynamo.shop.box.ini(item_info,(function(data){ 
    return function(){ 
     console.log(data); 
    } 
})(iD))); 

我希望這會形成一個閉包。我唯一的查詢,因此它調用dynamo.shop.box.ini使用.bind(jQuery的)功能:

ini : function(data,callback){ 
.... 
      var right = $('<div>').addClass("dynamo_right").html('bye').bind('click',callback); 
.... 
    return container; 
}, 

我需要使用的.bind調用另一個匿名的功能,以保持關閉?

+0

關於閉包已經有很多關於StackOverflow的問題。只需搜索它:http://stackoverflow.com/search?q=%5Bjavascript%5D+closure – PitaJ

回答

1

不,ini本身就是一個函數,因此它有自己的範圍。因此,在每次調用時傳遞給ini的參數都不會改變,並且不需要另一次關閉。

相關問題