2014-04-11 52 views
1

我正在阅读某人的javascript代码,我很难理解他们在这里要做什么。在console.log中运行一个函数?

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

console.log(add3(4)); 

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

console.log只取add3的值,并自动将它加到一个整数4?

由于

+2

add()?的定义是什么?它必须是一个返回函数的函数。顺便说一句,你必须添加语言标记。也许这是JavaScript? – ymonad

+1

它只是对'add3(4)'的结果调用'console.log'。 – user2357112

回答

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未定义”。使用curried示例,var add3 = add(3)就像是在说:“好吧,我不知道我想要添加三个还是什么,因此add3只是另一个功能,它会将3添加到任何内容中。”

1

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

add3是由add生成的函数。

功能add看起来艾克这个(可能):

function add(n) { 
    return function(x) { 
     return n + x; 
    } 
} 
相关问题