我正在閱讀某人的javascript代碼,我很難理解他們在這裏要做什麼。在console.log中運行一個函數?
var add3 = add(3);
var add4 = add(4);
console.log(add3(4));
有人可以解釋console.log()
裏面發生了什麼嗎?
是console.log
只取add3
的值,並自動將它加到一個整數4?
由於
我正在閱讀某人的javascript代碼,我很難理解他們在這裏要做什麼。在console.log中運行一個函數?
var add3 = add(3);
var add4 = add(4);
console.log(add3(4));
有人可以解釋console.log()
裏面發生了什麼嗎?
是console.log
只取add3
的值,並自動將它加到一個整數4?
由於
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添加到任何內容中。」
console.log
輸出它的參數到控制檯。 它的標記(add3(4)
)是一個函數調用,它調用函數add3
,參數4
。
add3
是由add
生成的函數。
功能add
看起來艾克這個(可能):
function add(n) {
return function(x) {
return n + x;
}
}
add()?的定義是什麼?它必須是一個返回函數的函數。順便說一句,你必須添加語言標記。也許這是JavaScript? – ymonad
它只是對'add3(4)'的結果調用'console.log'。 – user2357112