2016-09-05 46 views
-1
返回一個新的數組

下面的代碼將引發以下exeption:數組的每個值映射到一個給定函數在JavaScript

Uncaught TypeError: someFunction(...) is not a function

是什麼原因造成這個異常被拋出?

map = function (someList, someFunction){ 
 
    var result =[]; 
 
    for (x = 0; x < someList.length; x++){ 
 
     result.push(someFunction(someList[x])()); 
 
    } 
 
    return result; 
 
}; 
 

 
map([1,2,3,4], function(num){ 
 
    return num * 10; 
 
});

+0

謝謝大家!我在someFunction「()」後面寫了一個額外的圓括號。 – mapageKA21

回答

1

的問題是在這條線

result.push(someFunction(someList[x])()); 
            ^^ 

這額外的括號是多餘的。您已通過說someFunction(someList[x])呼叫功能someFunction。通過添加這些額外的括號,您基本上試圖調用返回值someFunction(someList[x]),這是一個數字,而不是函數。