2016-12-02 4 views
-3

Я предрек функция ниже:функция Javascript метания TypeError

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

Если я вызываю функцию, как показано ниже:

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

Я вижу результат, но и получение TypeError с указанием функ не является функция. Где я ошибаюсь?

ответ

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)

2

Вы передаете результат функции функции, а не функцию. Попробуйте:

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

+0

Почему я оштрафован отрицательный рейтинг. Я новичок в javascript. – zilcuanu

+0

Я сам это заметил - я не уверен, почему. Это казалось законным вопросом. – Dave

+0

Я также не уверен, кому сообщить. – zilcuanu