-2

很久以前我看到一个 Javascript 挑战,我不记得在哪里,但现在我正在尝试解决它。直到现在,我不知道如何进行。

我有这个函数,我必须调用它返回 8:

function foo(a, b){
    b(function(){
        return a + a;
    });
}

由于foo不返回任何内容,是否可以拨打我需要的电话?或者这只是一个棘手的问题?

4

2 回答 2

0

如果“返回”是指警报或将其记录在某处,则很容易:

foo(4, function(fn){
   console.log(fn());
});

甚至忽略输入:

foo('bar', function(){
   console.log(8);
});
于 2014-03-12T15:59:01.713 回答
0

你可以这样做 :

var r = foo(foo(0, function(){ foo = function(){ return 8 } }));

这给出r了返回值,即8.

于 2014-03-12T16:13:40.923 回答