Edit in JSFiddle

function buildList(list) {
  var result = [];
  for (var i = 0; i < list.length; i++) {
    var item = 'item' + i;
    var f = function() {
      var object = item;
      var j = i;
      return function() {
        console.log(object + ' ' + list[j])
      };
    }

    result.push(f());
  }
  return result;
}

function testList() {
  var fnlist = buildList([1, 2, 3]);
  // Using j only to help prevent confusion -- could use i.
  for (var j = 0; j < fnlist.length; j++) {
    fnlist[j]();
  }
}

testList();