2011-01-19 256 views
9

我讀通過了jQuery UI的源代碼(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; 

相同

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

」逗號允許在變量定義前寫入var一次。「啊,那就是這樣。 – SooDesuNe 2011-01-20 01:04:43

8

它只是緩存變量& & obect propertys。由於對象查找帶有成本,因此這通常被認爲是非常好的做法。

window.href 

花費的時間比

var myhref = window.href; 
myhref; 

當然你需要昂貴的通話一旦更多的時間,但對緩存的變量所有的呼叫都多少要快得多。

使用此模式的另一個原因是緩存DOM node references的原因幾乎相同。訪問DOM是您可以在Javascript中完成的最昂貴的事情之一(在瀏覽器中)。所以通過緩存引用你只需提高你的代碼。 「