我读了一篇关于如何加速 javascript的文章,我尝试复制它可以提高循环速度的代码:
var chunk = function (array, process, context) {
setTimeout(function(){
var item = array.shift();
console.log('item', item);//this could show correctly
process.call(item, context);
if (array.length > 0){
setTimeout(arguments.callee, 100);
}
}, 100);
}
然后我尝试将我的参数传递给它,但我不知道如何使用该context
参数,我所做的是:
var dosomething1 = function (item) {
console.log('this is begin ' + item)
}
var dosomething2 = function (item) {
console.log('this is end ' + item);
}
var process = function (item) {
console.log(item); //this show undefined
dosomething1(item);
dosomething2(item);
}
var temp = ["a", "b", "c", "d"];
chunk(temp, process);
问题是从进程功能开始,item
日志undefined
,项目只能正确显示在chunk
。
那么我该如何解决这个问题呢?我认为它与process.call
方法有关?它与上下文参数有关吗?
你可以在这里看到演示