4

Class()new Classの違いは何new Class()ですか?私はテストを行いましたが、後者の方が速いようです。

http://jsperf.com/object-initilzation

違いはないと読みましたが、あるようです。

4

3 に答える 3

3

Class()

関数を呼び出します。コンストラクター関数ではこれを使用しないでください。

new Classnew Class()

これらの間に違いはなく、どちらもクラスの新しいインスタンスをインスタンス化します。渡される引数がなく、newキーワードが使用される場合、parensはオプションです。

于 2012-12-29T10:47:44.443 に答える
0

Class()コンストラクター関数の誤用です。このように呼び出すと、コンテキストオブジェクトとしてグローバルスコープがあり、Classの新しいインスタンスは作成されません。との主な違いはnew Classnew Class()特定のjavascriptenginedで使用されるいくつかの引数の最適化にあると思います

于 2012-12-29T10:41:04.297 に答える
0

このようなクラスがある場合:

function Test(propVal){
    this.prop = propVal;
}

次の結果が得られます。

Test()を呼び出す と、Testはコンストラクターとして機能しているため、「undefined」が返されます。

new Test(5)の呼び出しTest の新しいインスタンスを取得し、そのインスタンスの「prop」を5に設定します

新しいテストの呼び出しテスト の新しいインスタンスを取得し、そのインスタンスの「prop」が未定義に設定されます

これがお役に立てば幸いです。

ありがとう、

于 2013-01-21T20:11:43.303 に答える