1

私は多くの HTML5 ゲームを構築していますが、javascript について 1 つのことがわかりません。

大きなオブジェクト (多くの属性とメソッドを含む) を扱う場合、属性値を変数に格納すると何か違うのでしょうか?

ある値をapplication.data.setings.foo.bar1 秒間に複数回チェックする必要があるとします。変数に格納する必要がありますfooBarか? 私が正しく理解していれば、変数は単なる参照になるので、問題にはなりません。

so:大きなオブジェクトの属性の値を変数に格納する必要がありますか?

4

3 に答える 3

3

この図はあなたにあなたの答えを与えます。http://oreilly.com/server-administration/excerpts/even-faster-websites/writing-efficient-javascript.html#access_times_for_object_properties_by_de

ここに画像の説明を入力してください

于 2012-09-20T17:24:11.263 に答える
1

あなたが求めているのは次のとおりだと思います:

次の変数があるとします。

application.data.settings.foo.bar = { some: 'value' }

-を使用してアクセスする方がパフォーマンスが高いですapplication.data.settings.foo.barか、それとも代わりに:var bar = application.data.settings.foo.barを使用してから を参照してくださいbar

私の推測では、変数への代入は、関連する項目にアクセスするためにインタープリターが実行する手順が少ないため、おそらくわずかに効率的であると思われます。使用する場合application.data.settings.foo.bar-インタープリターはapplicationオブジェクトへの参照を利用しdata、次にそのsettingプロパティを参照し、次にそのプロパティを参照し、次にそのfooプロパティを参照し、次にそのプロパティを参照する必要がありbarます。これが5ステップです。

アクセスのためにローカル変数に参照すると、同じオブジェクトにヒットしますが、各参照で直接ヒットします。

ただし、結局のところ、大量の高速アクセス ループなどを頻繁に実行しない限り、パフォーマンスが大幅に向上することはほとんどありません。

于 2012-09-20T17:26:13.737 に答える
-1

数値の場合、変数に配置するとパフォーマンスが向上する可能性があります

于 2012-09-20T17:23:07.517 に答える