我正在阅读某人的javascript代码,我很难理解他们在这里要做的事情。
var add3 = add(3);
var add4 = add(4);
console.log(add3(4));
有人可以解释console.log()
里面发生了什么吗?
console.log
只取add3
值并自动将其添加到整数4?
由于
答案 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>