0

これは:

function Con () {
    var foo = 42;
    this.foo = foo
}

これより遅い:

function Con () {
    this.foo = 42;
}

「Con」コンストラクターの呼び出しによって返されたオブジェクトでの foo 変数のその後の使用では? すなわち。コンストラクター呼び出しのクロージャーで変数が最初に生きていた場合、問題はありますか?

編集: @FakeRainBrigand: さて、ここでは、コンストラクターを使用してオブジェクトを構築する時間を測定します。右?次のように、構築されたオブジェクトのその後の使用について考えていました。

var myObj = new Con();
var bar = myObj.foo;

2 つのケースで、最後の行のみ(つまり、変数 へのアクセス) の使用時間はどれくらいですか?foo

4

1 に答える 1

2

少し遅いです。これがパフォーマンステストです。それは多かれ少なかれ無視できるものであり、心配すべき他の問題がほぼ確実にあります。これは 1 秒間に 6000 万回実行できるため、1 秒間に数回しか実行できないことを心配してください。

元の質問のコードを使用したパフォーマンス テスト


実際にコンストラクターを作成することを含まないようにテストを変更したところ、それらはさらに同一になりました。これは、内部の最適化が原因である可能性があります。ここで、両者は誤差の範囲に陥ります。

2 回目のパフォーマンス テスト

于 2013-08-20T07:08:14.940 に答える