在jQuery UI中将其分配给self

时间:2010-11-05 17:39:42

标签: javascript jquery-ui this variable-assignment

我目前正在编写一个jQuery UI插件,因此调查现有的jQuery UI源代码。 在手风琴插件的_create方法this已分配给self (link to source),但thisself并排使用在那种方法中。那么为什么他们选择分配给self呢?

2 个答案:

答案 0 :(得分:8)

这完全取决于背景。在函数本身selfthis中引用相同的对象,但在事件中,处理程序this引用事件所针对的DOM元素。通过将this的值赋给self,可以让它们自由地引用窗口小部件对象或这些事件处理程序中的DOM元素。

如果仔细观察,您会注意到在函数的上下文中,它们只使用self,而在匿名函数(事件处理程序)中,它们同时使用thisself分别引用DOM元素或Widget。

答案 1 :(得分:2)

我不完全知道JQuery UI插件是如何工作的,但我能想象的是以下场景。我认为他们希望保留对Widget对象的引用而不覆盖this(更改范围)。执行该函数时,范围不再是Widget对象,而是DOM元素。因此,他们可以使用this作为参考轻松添加类和所有内容。在此之前,他们使用闭包来拯救小部件objcet范围,并将this(现在仍然是解释代码的小部件对象)的值分配给局部变量self。现在使用self,他们可以更改对象上的字段。