私が知る限り、this
を変数に割り当てることは、this
のスコープが変更されるかもしれないコールバック内で使用されます。しかし、ExtJSのソースを掘り下げてみると、それはあらゆる種類の機能で使用されていましたが、必ずしもそうではありませんでした。だから私はthis
をスコープの下にあるローカル変数に代入する何らかの理由があるのでしょうか?あるいは、異なる開発者スタイルに苦しんでいるExtJSソースですか?これをコールバックなしのロケール変数に割り当てる理由は何ですか?
6
A
答えて
2
これにはいくつかの理由があります。最も重要なことは、ローカル変数を使用するとファイルの圧縮中に数バイトが節約されることです。小さなコードではあまり気にならないかもしれませんが、時間の経過とともに良いビットを追加することができます。
Senchaのフォーラムには、この問題に関する長いスレッドがあります。http://www.sencha.com/forum/showthread.php?132045です。
0
this
は、スコープが変更される場所で使用されることがあります。
スコープの問題がないことを確認する場合もあります。
これ以外にも、開発者は時々、必要以上に習慣外の変数にthis
を割り当てます。
3
@kevhenderが右に指摘しましたsencha forum threadここで、evanは非常に良い説明をしています。
サイズのみです。そして、ここでの例だ:
function doA() {
var me = this;
me.a();
me.b();
me.c();
me.d();
me.e();
me.f();
me.g();
me.h();
me.i();
me.j();
me.k();
me.l();
}
function doB() {
this.a();
this.b();
this.c();
this.d();
this.e();
this.f();
this.g();
this.h();
this.i();
this.j();
this.k();
this.l();
}
我々が得る圧縮:
function doA(){var a=this;a.a();a.b();a.c();a.d();a.e();a.f();a.g();a.h();a.i();a.j();a.k();a.l()}
function doB(){this.a();this.b();this.c();this.d();this.e();this.f();this.g();this.h();this.i();this.j();this.k();this.l()};
それは集計します。
それによると、私たちべき
ませ我々は3回だけ
function doA(){var a=this;a.a();a.b();a.c();}; function doB(){this.a();this.b();this.c();};
まで、これを使用する場合は、ローカルVARを使用して、我々があればそれを使用これを3回以上頻繁に使用する
function doA(){var a=this;a.a();a.b();a.c();a.d()}; function doB(){this.a();this.b();this.c();this.d()};
関連する問題
- 1. JavaScriptのコールバック関数でコールバック関数の変数を割り当てる方法
- 2. C#割り当てられていないローカル変数の使用理由
- 3. 何らかの理由で動的に割り当てられた配列
- 4. なぜこれを別の変数に割り当てるのですか?
- 5. この変数にスペースを割り当てるのはなぜですか?
- 6. 自己が何かに割り当てられているときにエラーが発生しない理由
- 7. Javascriptコールバック関数の戻り値をグローバル変数に割り当てる
- 8. $ thisを値で割り当てることができない理由は、常に参照によって割り当てられます。
- 9. 動的に割り当てられたメンバー変数。ポイントは何ですか?
- 10. Pythonで変数が割り当てられていないときに変数を割り当てよう
- 11. ベクトル割り当てのクラッシュ、わからない理由
- 12. CUDAで変数を割り当てるC++ - デバイス変数を割り当てることができません
- 13. なぜこのような変数を割り当てるのですか?
- 14. プロパティの割り当てと変数の割り当て:標準は何ですか?
- 15. 既に割り当てられていない限り、R変数にデフォルト値を割り当てますか?
- 16. 変更コールバックが呼び出されない理由は何ですか?
- 17. すでに割り当てられている変数にメモリを割り当てていますか?
- 18. 変数を割り当てる際のアンパサンドの意味は何ですか? (Java)
- 19. 物理ストレージ割り当てとは何ですか?
- 20. 変数に無名関数を割り当てるのはなぜですか?
- 21. ファイルディスクリプタのアドレスを変数に割り当てることはできますか?
- 22. 変数を割り当てるこれらの方法の違いは何ですか?
- 23. 静的変数が静的メソッドによって返された値に割り当てられないのはなぜですか? J = 0である理由
- 24. 引数変数の再割り当てのポイントは何ですか?
- 25. jQuery AJAXリクエストに値が割り当てられたときにPHP変数が設定されない理由
- 26. 変数割り当てと参照渡しの違いは何ですか?
- 27. javascriptでdocument.getElementByIdを変数に割り当てることはできますか
- 28. は、STDでiterator->第二に割り当てる理由を私は理解していない参照
- 29. この変数はどのように割り当てられますか?
- 30. メモリ管理直接割り当てなしで割り当てる
ありがとうございました。ありがとうございました。ありがとうございました。あなたは正しい方向に受け入れられ+1しました。とにかく私はもっと複雑な答えを書いて、自分の質問にこれを加えました。 – JJR