尝试创建与 in 中test.tgt
的函数相同的函数,test.src
但它们将具有上下文。
test.src.fn() => test.work.fn.call(context)
这是试验台
var fn1 = function() { console.log('fn1'); }; var fn2 = function() { console.log('fn2'); }; var 上下文 = { a: 1 }; 变种测试 = { tgt:{}, src:{一:fn1,二:fn2}, 初始化:函数(){ for( var i in test.src ) { test.tgt[i] = function(arg) { test.src[i].call(test.cxt,arg); }; } } } 测试.init(); test.src.one() => 'fn1' test.tgt.one() => 'fn2' 哎哟!!
问题是test.src[i]
在执行函数之前不会对其进行评估。
如何test.src[i]
在新创建的函数中获得“真实”?