これは単なるJavaScriptのものです。
void
は、非常に奇妙なJavaScript演算子です。オペランドを評価した結果、undefined
が結果として得られます。だからあなたの
() => void (x === 0 && this.setZero())
...常にthis.setZero()
(x === 0
場合)を呼び出すの可能性副作用で、undefined
を返します矢印関数です。
なぜあなたは、ボイドのx === 0 & & this.setZeroを()ラップしていますか?
(x === 0
がfalseの場合)常に戻りundefined
ではなくfalse
を返す関数だからかthis.setZero()
の結果(x === 0
がtrue
ある場合)。
このパターンの名前は何ですか?
具体的には1つではないと思います。
() => x === 0 && this.setZero()
の代わりにfalse
またはthis.setZero()
の結果が返されます。
私はちょうど
() => void (x === 0 && this.setZero())
あなたはreturn
を使用しない限り、冗長矢印関数は何も返さないので、
() => { x === 0 && this.setZero(); }
は、まったく同じものをないことに注意してくださいます。別の代替は、次のようになります。
() => { if (x === 0) this.setZero(); }
それがここで使用されるかもしれない理由を説明するには、この矢印の機能が約束継続中で使用されている可能性がありますし、開発者は、特に* * 'false'のどちらかを返すように望んでいません'this.setZero()'の結果ですが、単純に約束/達成可能性は何もなしで達成されます。 'void 'は、この結果を達成するための非常にコンパクトな方法です。 – cdhowie
@cdhowie:Heh、私はちょうどそれを追加しました(しかし、約束ビットではありません)。この場合、 'void 'は冗長な矢印よりコンパクトであることに注意してください。 –
コンパクトながら、明らかに混乱しています。コードを混同すると、バグやメンテナンスの問題が発生します。冗長にして、細工者に自分のことをさせてもらいましょう。 –