我讀到一篇文章關於how speed up javascript,我試圖複製它的代碼可能提高循環速度:混淆關於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
方法有關嗎?它與上下文參數有關嗎?
你可以看到演示here