2016-09-05 26 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]),这是一个数字,而不是函数。