Consider this simple example:

```
var count = 0;
for (var i = 0; i < 4; i++ ) {
    setTimeout(function() {
      console.log(i, count++);
    }, i * 200);
}

```

which outputs the following

```
4 0
4 1
4 2
4 3

```

I would guess that `i` always resolves to 4 because the setTimeout callback closes over the variable I but I can't figure out why the same doesn't hold true for `count`? 

```js
var count = 0;
for (var i = 0; i < 4; i++ ) {
  setTimeout(function() {
    console.log(i, count++);
  }, i * 2000 );
}
```