пытается создать функции в test.tgt
так же, как функции в test.src
, за исключением того, что у них будет контекст.не может создать закрытие javascript
test.src.fn() => test.work.fn.call(context)
здесь является испытательным полигоном
var fn1 = function() { console.log('fn1'); }; var fn2 = function() { console.log('fn2'); }; var context = { a: 1 }; var test = { tgt: {}, src: { one: fn1, two: fn2 }, init: function() { for(var i in test.src) { test.tgt[i] = function(arg) { test.src[i].call(test.cxt,arg); }; } } } test.init(); test.src.one() => 'fn1' test.tgt.one() => 'fn2' ouch!!
проблема заключается в том, что test.src[i]
не вычисляется, пока функция не будет выполнена.
Как я могу получить «реальный» test.src[i]
внутри вновь созданной функции?
Возможный дубликат [Javascript закрытия внутри петель - простой практический пример] (http://stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical-example) –