Только не понятно что это за комбинация такая:
div.onclick = (function(foo, j) { return function() { foo(j); }; })(this.inputObj, i);
. зачем такая громоздкость, вместо
div.onclick = (function(foo, j) { return this.inputObj(j); });
и что это вообще обозначает ???