Javascript函数抛出typeerror

时间:2016-12-02 18:32:57

标签: javascript

我在下面声明了一个函数:

 var myFun = function(func){
        func();
    }

如果我调用下面的函数:

myFun(function(x,y){console.log(x+y)}(3,4))

我看到了结果但是得到一个TypeError声明func不是一个函数。我哪里错了?

2 个答案:

答案 0 :(得分:2)

您将函数的结果传递给函数而不是函数。尝试:

myFun(function() { return (function(x,y){console.log(x+y)}(3,4)); })

答案 1 :(得分:1)



 var myFun = function(func) {
   // you need to curry a function that can be called with your arguments
   return function(x, y) {
     // then pass the arguments to the callback
     func(x, y)
   }
 }
 
 // now to call myFun you would use
 // myFun(func)(x, y)

 myFun(function(x, y) {
   console.log(x + y)
 })(3, 4)