在console.log中运行一个函数?

时间:2014-04-11 07:15:43

标签: javascript console

我正在阅读某人的javascript代码,我很难理解他们在这里要做的事情。

var add3 = add(3);
var add4 = add(4);

console.log(add3(4));

有人可以解释console.log()里面发生了什么吗?

console.log只取add3值并自动将其添加到整数4?

由于

2 个答案:

答案 0 :(得分:1)

console.log将其参数输出到控制台。 它的arument(add3(4))是一个函数调用,它使用参数add3调用函数4

add3是由add生成的函数。

函数add看起来像这样(可能):

function add(n) {
   return function(x) {
      return n + x;
   }
}

答案 1 :(得分:0)

window.console是您的浏览器对其下载和解析的文档提供反馈的方式。您通常可以通过按F12然后单击“控制台”选项卡来查看它。它是alert的一个很好的替代品,但您也可以直接在其中编写JavaScript,然后单击“运行”(如果它是一行命令框,则按Enter键)。这比将其写入文件,保存,刷新和查看会发生的情况要容易得多。

对添加功能一无所知,看起来它是为了显示currying的示例。所以不要说:

function add(x, y){
   return x + y;
}

你写道:

function add(x){
    return function(y){
        return x + y;
    }
}

然后你可以这样做:

var add3 = add(3); //returns a function that will add 3 to anything
console.log(add3(4)); //returns 7.
console.log(add(3)(4)); //also returns 7.

这似乎是一种愚蠢的方式,但它是一种动态生成函数的方法。如果我对第一个例子做了add(3),那么它会破坏并在控制台中说“y未定义”。使用curry示例,var add3 = add(3)就像是说“好吧,我不知道我想要添加三个,所以add3将只是另一个将3添加到任何东西的函数。”< / p>