2014-04-11 51 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; 
    } 
} 
相關問題