0
foo = new Foo();  // this one I use all the time

foo = new Foo;   // I don't understand what this one does

最近new Array、 now を使用しているコードを見たことがあります()。あなたがそれをできるとは知りませんでした。違いは何ですか? また、実行されていない新しいオブジェクトをいつ使用しますか?

4

3 に答える 3

1

どちらの構文も同じことを行います。それは純粋に文体の問題です。

コードベースを通じて 1 つに固執することをお勧めします。オプションを渡すときに常に括弧を使用することは、スタイル ガイドで最も一般的な形式です。

于 2013-09-19T15:47:29.307 に答える
1

それはまったく同じことを意味します。引数 (括弧) を指定しない場合は、空の引数リストを使用してコンストラクターを呼び出します。EcmaScript §11.2.2newから演算子:

生産性NewExpression : new NewExpressionは次のように評価されます。

  • …</li>
  • [[Construct]]コンストラクターで内部メソッドを呼び出し、引数を指定せずに (つまり、引数の空のリストを)呼び出した結果を返します。

生産性MemberExpression : new MemberExpression Argumentsは次のように評価されます。

  • …</li>
  • argList を Arguments を評価した結果とし、引数値の内部リストを生成します (11.2.4)。
  • …</li>
  • リスト argList を引数値として提供して、コンストラクターで [[Construct]] 内部メソッドを呼び出した結果を返します。
于 2013-09-19T15:47:05.583 に答える