2016-10-30 11 views
2

私はJavascriptでいくつかを見ていました。私は()関数の呼び出しに着いたとき、私はmozilla js developer pageにこれを見ていた:これを説明するにはJavaScriptの構文

構文:

fun.call(thisArg[, arg1[, arg2[, ...]]]) 

私は、関数が何をするか、それが動作しますが、どのような地球上ではということであるかを理解言っている構文?その括弧の直後にカンマがあるのはなぜですか?

arr.reduce(callback[, initialValue]) 

これはarr.reduceのようなもの(コールバックすべきではない:私は、私はそれがどのように動作するかを理解減らす()関数を探していたが、構文はこのことを示して同様

[,

、initialvalue)代わりに?

noobとして、構文はコールバックが配列であり、空の最初の要素とinitialValueという2番目の要素があると考えています。私はこの構文について読むことができるので、それは理にかなっていますか、ある種の人が私に明快さを提供してくれますか?

EDIT:コールバックは関数yesを参照していますか?だから、コールバック()ではなく、コールバック()ではないのですか?

答えて

5

[...]は、内部が任意であることを示します。たとえば、arr.reduce(callback[, initialValue])は、arr.reduce(callback)またはarr.reduce(callback, initialValue)のいずれかです。

カンマは、2番目の引数を含める場合は、コンマを入れる必要があるという意味です。

+0

感謝。私が提供した2番目の例を見ると、[...]はありません。それでは、引数の1つがオプションであることは、どうすればわかりますか? – yoonsi

+0

これは、コンマ(initialValue)の後の要素がオプションであることを意味し、この引数を使用する場合、コンマを指定する必要がありますか?それは意味をなさないでしょう。コールバックがなぜcallback()でなくコールバック()でないのか不思議です – yoonsi

+2

わかりやすくするために、これはJS構文ではなく、単なるドキュメント構文です。 –

2

これは実際のJS構文ではなく、ドキュメントの規約です。

大括弧は引数が省略可能であることを示します。

省略記号は、の任意の数値がそこに行くことができることを示します。

fun.call(thisArg[, arg1[, arg2[, ...]]]) 

あなたが言うことができる意味:

fun.call(foo); 
fun.call(foo, 1); 
fun.call(foo, 1, 2); 
fun.call(foo, 1, 2, 3); 
fun.call(foo, 1, 2, 3, 4); 
fun.call(foo, 1, 2, 3, 4, 5); 

など

arr.reduce(callback[, initialValue]) 

あなたはdsayクーロン意味:

arr.reduce(foo); 

または

arr.reduce(foo, bar); 

...しかし、応答のためのない

arr.reduce(foo, bar, baz); 
関連する問題