2016-12-03 76 views
1

我有一个function,它有几个for语句。我需要能够通过参数将代码传递给for语句。将代码块传递给函数/函数指针JavaScript

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 [ 

我很想知道如何解决这个错误,还是有办法,我还可以做什么,我试图做的。

回答

4

您可以创建一个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 
    } 
});