我在下面声明了一个函数:
var myFun = function(func){
func();
}
如果我调用下面的函数:
myFun(function(x,y){console.log(x+y)}(3,4))
我看到了结果但是得到一个TypeError声明func不是一个函数。我哪里错了?
答案 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)