0

次のような十分な機能があります。

var functionName = function(e) {
  // 
};

すべてのパラメータが単一のコンテナに渡されeます。ほとんどの場合、値は単純な値 (関数なし) です。例:

{ parameter1: 1, parameter2: "Name", parameter3:{ subParameter1: "A"}}

しかし、次のように関数を渡す場合があります。{ p2:function(){...} }

パラメータ値の利用に関しては、次の 2 つのオプションがあります。

オプション 1: ee.parameter1、e.parameter3.subParameter1 などから始まるチェーンからパラメーター値を取得します。

オプション 2: キャッシュされたパラメーター値を使用します。

var parameter1 = e.parameter1;
var subParameter1 = e.parameter3.subParameter1;

2 番目のオプションは読みやすさを向上させますが、変数の数とコード ベースのサイズを増やします。一方、長いチェーンを使用すると、より乾燥しますe.p1.p2.p3

これらの 2 つのオプションから選択するには、どのような理由を使用すればよいでしょうか?

**Update 1 - the question sounds quite subjective, let me re-prase it.** 

ずっとチェーンを使ってもかまいません。ローカルの vars コードベースは小さくなりません。何が何であるかをいつでも把握できます。キャッシングが必須の場合はありますか?

4

1 に答える 1

1

e.p1深さ( vs e.p1.sp2.ssp3)と使用頻度に基づく組み合わせ。より深いサブプロパティとサブプロパティの高い使用率の両方が、キャッシュの恩恵を受けます。

ネストされたプロパティのルックアップはコストがかかる可能性があり、ルックアップを一度実行した後に値をキャッシュすることは、それを頻繁に使用する場合に役立ちます。これは、チェーン上の特定のプロパティに複数回アクセスしている場合にのみ効率的であり、アクセスすればするほど、キャッシュのメリットが大きくなります。

深さ(e.p1, e.p2, e.p3)のレベルが1つだけで、各プロパティ値を1回だけ検索する場合は、気にしないでください。

e.p1.sp2.ssp3関数全体にアクセスしている場合は、必ずキャッシュしてください。

于 2013-01-25T16:31:18.300 に答える