2011-01-19 18 views
9

私は(特にUI-ダイアログ)のjQuery UIのソースコードを読んでいる、私はこのパターンが何回も繰り返して参照してください。jQueryのUIデザインパターン質問

var self = this, 
     options = self.options, 
     uiDialog = self.uiDialog; 

var self = this, something, something else

、このパターンの背後にある理由は何

答えて

5

selfを割り当てると、スコープの問題に役立ちます。thisの意味はスクリプト全体で変更される可能性があります。selfは常にインスタンスへの参照を保持します。一般的な他の形式はthatbaseです。

カンマでは、変数定義の前に一度だけvarを書き込むことができます。

var self = this, 
    options = self.options, 
    uiDialog = self.uiDialog; 

それだけでキャッシュ変数& & obectのpropertysだ

var self = this; 
var options = self.options; 
var uiDialog = self.uiDialog; 
+0

"コンマでは変数定義の前に一度だけvarを書き込むことができます。"ああ、それはそうです。 – SooDesuNe

8

と同じです。これは一般的にオブジェクトの検索にはコストがかかるため、非常に良い方法と考えられます。

window.href 

はもちろん

var myhref = window.href; 
myhref; 

よりもはるかに多くの時間がかかりますが、一度高価な呼び出しを行う必要がありますが、キャッシュされた変数へのすべての更なる呼び出しがはるかに高速です。

このパターンを使用する別の理由は、ほとんど同じ理由でDOM node referencesをキャッシュすることです。 DOMへのアクセスは、Javascriptで(ブラウザーで)実行できる最も高価なものの1つです。したがって、参照をキャッシュすることによって、コードを向上させるだけです。