我有一个function,其中有几个for语句。我需要能够通过参数将代码传递给for语句。

var a = function(paramCode){
    for(var eachRow=0; eachRow<20; eachRow++){
        for(var eachCol=0; eachCol<20; eachCol++){
            paramCode
        }
    }
}

a({ //the code I want to pass is surrounded in the function pointers
    if(array[x][y]){
        //do something
    }
});


这是我要执行的操作的基本版本。唯一的问题是控制台中出现错误。

Uncaught SyntaxError: Unexpected token [


我很想知道如何解决该错误,或​​者仍然可以做自己想做的事情。

最佳答案

您可以创建一个callback,这是一个作为参数移交给调用函数的函数。

var a = function (callback) {
        for (var eachRow = 0; eachRow < 20; eachRow++) {
            for (var eachCol = 0; eachCol < 20; eachCol++) {
                callback(array, eachRow, eachCol);
            }
        }
    };

a(function (array, x, y) {
    if (array[x][y]){
        //do something
    }
});

10-02 08:24