-1

私はこのパターンをいたるところで見てきましたが、それが何をするのかわかりません:

x.memb = x.memb ? x.memb + 1 : 1;

カウンターだと思いますが、よくわかりません。誰かがこれが何をし、ロジックを説明できますか?

4

2 に答える 2

3

x.membがすでに定義されていて、が定義されていない場合は0、それをインクリメントします。それ以外の場合は、値をに設定します1

x.membこれは基本的に、定義されていない場合の処理​​を行うための単なる増分です。

あなたはそれを次のように書くこともできたでしょう

x.memb = (x.memb||0) +1;

value||defaultValueこれは、javascriptの通常の構成よりも慣用的なものである可能性があります。

于 2013-02-06T20:04:22.420 に答える
1

これは、いくつかのカウントを行う三元オペレーターです。

本質的にそれはこれをやっている

if(x.memb)
   x.memb = xmemb + 1; //increment it
else
   xmemb = 1; //start it off 

それは単なる速記です。前のもの?が真の:場合は前のものを返し、偽の場合は後のものを返します。:

これは、カウントとは関係のないあらゆる種類のフォークにとって非常に便利なメカニズムであることに注意してください。この状況では、そのように使用されているだけです。

于 2013-02-06T20:04:51.623 に答える