que - Obtención de Coffeescript para crear una variable local en un bucle FOR
js to coffie (1)
esto es para lo que es la palabra clave do
. Ejecutará una función inmediatamente y todas las variables locales con el mismo nombre que uno de los argumentos se transferirán a la misma, asegurando un alcance de cierre adecuado.
for deal in dealArray
do (deal) ->
dealViewItem = dealViewFactory.DealDetail(deal)
dealViewItem.addEventListener ''click'', ->
dealCart.push(deal.dealId)
dealViewItem.setAddedToCart()
btnTakeDeals.setEnabled = true
dealHolder.add(dealViewItem)
Echa un vistazo a la versión compilada aquí
do
también se puede utilizar fuera de los bucles para funciones de ejecución automática.
#coffeescript
do ->
foo = ''bar''
// javascript
(function() {
var foo;
return foo = bar;
})();
¿Cómo puedo obtener dealViewItem
en el ámbito del bucle FOR? Actualmente, dealViewItem está dentro de su alcance, y todos mis oyentes de eventos se agregan al último dealViewItem.
for deal in dealArray
dealViewItem = dealViewFactory.DealDetail(deal)
dealViewItem.addEventListener ''click'', ->
dealCart.push(deal.dealId)
dealViewItem.setAddedToCart()
btnTakeDeals.setEnabled = true
dealHolder.add(dealViewItem)