foo = new Foo(); // this one I use all the time
対
foo = new Foo; // I don't understand what this one does
最近new Array
、 now を使用しているコードを見たことがあります()
。あなたがそれをできるとは知りませんでした。違いは何ですか? また、実行されていない新しいオブジェクトをいつ使用しますか?
foo = new Foo(); // this one I use all the time
対
foo = new Foo; // I don't understand what this one does
最近new Array
、 now を使用しているコードを見たことがあります()
。あなたがそれをできるとは知りませんでした。違いは何ですか? また、実行されていない新しいオブジェクトをいつ使用しますか?
どちらの構文も同じことを行います。それは純粋に文体の問題です。
コードベースを通じて 1 つに固執することをお勧めします。オプションを渡すときに常に括弧を使用することは、スタイル ガイドで最も一般的な形式です。
それはまったく同じことを意味します。引数 (括弧) を指定しない場合は、空の引数リストを使用してコンストラクターを呼び出します。EcmaScript §11.2.2new
から、演算子:
生産性
NewExpression : new NewExpression
は次のように評価されます。
- …</li>
[[Construct]]
コンストラクターで内部メソッドを呼び出し、引数を指定せずに (つまり、引数の空のリストを)呼び出した結果を返します。生産性
MemberExpression : new MemberExpression Arguments
は次のように評価されます。
- …</li>
- argList を Arguments を評価した結果とし、引数値の内部リストを生成します (11.2.4)。
- …</li>
- リスト argList を引数値として提供して、コンストラクターで [[Construct]] 内部メソッドを呼び出した結果を返します。