尝试创建与 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]在新创建的函数中获得“真实”?