2016-09-29 14 views
1

他の関数を垂直方向に呼び出すときに、このタイプのコーディングの名前が不思議でした。すなわち:javascriptの垂直実行の名前

fs.readFileSync('data.txt', 'utf8') 
    .trim() 
    .split('\n') 
    .map(line => line.split('\t')) 
    .reduce((acum, elem) => { 
    acum + parseInt(elem[1]) 
    }, 0) 
+3

これは_チェーンコールと呼ばれます_。 – vlaz

+0

「縦に」とはどういう意味ですか?これらは連鎖した関数呼び出しで、垂直方向に整列して書かれています(1行に書いたり、他の方法で整列することもできますが、おそらく最も読みやすいオプションです) – UnholySheep

+0

これは必ずしも "連鎖"いくつかの中間値がここで使用されているからです。 「連鎖的な呼び出し」は適切なポストのようです。また、「パイプライン」と呼ぶものもあります。 – 4castle

答えて

1

メソッド連鎖と呼ばれます。これは、プログラムを構造化するためのきれいな方法です。

1

それはをチェーンmethod chaining関数と呼ばれます。ウィキペディアにはjQuery exampleがあります。

+0

その記事から: "メソッド連鎖は_train wreck_とも呼ばれます":D私はそれも素晴らしい記述子だと思っています(奇妙なことに、他の言語でも有効です)。私はそれがページから編集されるかどうか分からないので、どこかに生きたいと思っていました。 – vlaz

+0

@vlaz素晴らしい観察!しかし、ほとんどの人は、メソッド呼び出しの間に改行を入れることでそれを回避します。 –

1

空白は重要な部分ではないため、垂直方向に呼び出す必要はありません。 「Fluent Interface」または単に「チェーン」と呼ばれています。ここでは、すべてのメソッドがオブジェクトを返すため、別のメソッドを呼び出すことができます。

+0

「Fluent Interface」は、JavaScriptを記述するのに使われてきたものではありませんが、通常は他のOO言語です。その理由は、多くの関数が "連鎖可能な"出力を返すので、それは本当に例外的なことではないと思います。流暢なインターフェースは注目に値すると思います。 – vlaz

+0

@vlaz JavaScriptは[wikipediaのページ](https://en.wikipedia.org/wiki/Fluent_interface#JavaScript)にリストされています。 – 4castle

+0

@ 4castle JavaScriptを記述するのに使ったのはこれが初めてです。おそらく、FIは一般に_same_オブジェクトが返されるということを指摘する価値があります。そのため、チェーン内の次の各呼び出しは基底のインスタンスで動作しますが、JSのほとんどの時間は各呼び出しが_ 1、2、3] .map()。filter() 'は実際には3つの配列を生成し、同じ配列を操作しません。また、なぜFIがそれほど大きくならないのかもしれない。 – vlaz

関連する問題