私が知る限り、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. なぜこれを別の変数に割り当てるのですか?
- 2. Javascriptコールバック関数の戻り値をグローバル変数に割り当てる
- 3. 自己が何かに割り当てられているときにエラーが発生しない理由
- 4. なぜこのような変数を割り当てるのですか?
- 5. すでに割り当てられている変数にメモリを割り当てていますか?
- 6. 変数を割り当てる際のアンパサンドの意味は何ですか? (Java)
- 7. 変更コールバックが呼び出されない理由は何ですか?
- 8. jQuery AJAXリクエストに値が割り当てられたときにPHP変数が設定されない理由
- 9. 引数変数の再割り当てのポイントは何ですか?
- 10. iPhone:インスタンス変数の再割り当て=割り当て解除ですか?
- 11. メモリ管理直接割り当てなしで割り当てる
- 12. この変数はどのように割り当てられますか?
- 13. "名前付き定数に割り当てることができません"(変数の再割り当て)
- 14. GPIO.outputを変数に割り当てることはできますか?ラズベリーPI
- 15. 静的クラスを変数に割り当てることはできますか?
- 16. Tclオブジェクトを変数に割り当てることはできますか?
- 17. NSDate変数をnilに割り当てることは可能ですか?
- 18. オペレータを変数に割り当てることはできますか?
- 19. 割り当て変数タグジャンゴ
- 20. 既に割り当てする変数割り当てのiPhone SDK
- 21. この変数をこのvar宣言で自分自身に割り当てるのはなぜですか?
- 22. 内部コールバック関数に割り当てられた変数にアクセスできない
- 23. このNUMA対応割り当てとは何ですか
- 24. mysql変数の割り当て:どのように割り当て順序を強制するのですか?
- 25. Actionscript:宣言される前に変数を割り当てることはなぜ可能ですか?
- 26. Groovy - 変数に割り当てられていないマップ
- 27. elasticsearchの断片が割り当てられなくなった理由
- 28. コンストラクタなしのサブクラスからのクラス変数の割り当て
- 29. PHPの変数にNULLを割り当てる:それは何をしますか?
- 30. 既に新しい変数名が割り当てられている場合、どのように新しい変数名を割り当てますか? Ruby
ありがとうございました。ありがとうございました。ありがとうございました。あなたは正しい方向に受け入れられ+1しました。とにかく私はもっと複雑な答えを書いて、自分の質問にこれを加えました。 – JJR