2011-01-19 88 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中完成的最昂贵的事情之一(在浏览器中)。所以通过缓存引用你只需提高你的代码。 “