lar*_*ryq 74 javascript jquery
我在jQuery 上看到了关于$(this)
vs的一些关于vs的讨论$this
,它们对我有意义.(有关示例,请参见此处的讨论.)
但是下面的代码片段,来自jQuery网站插件教程,展示了可链接性如何工作?
(function ($) {
$.fn.lockDimensions = function (type) {
return this.each(function () {
var $this = $(this);
if (!type || type == 'width') {
$this.width($this.width());
}
if (!type || type == 'height') {
$this.height($this.height());
}
});
};
})(jQuery);
Run Code Online (Sandbox Code Playgroud)
$this
上面代表什么?就在我认为我弄清楚的时候......
Joe*_*Joe 119
$this
只是一个普通的变量.该$
字符是变量名称中的有效字符,因此其$this
作用与任何其他非保留变量名称相同.它在功能上与调用变量相同JellyBean
.
Thi*_*ter 66
通常var $this = $(this);
用来避免创建一个新的jQuery对象而不是必要的.如果是下面的代码,则只创建一个对象而不是两个/四个.它与可链接性完全无关.
你也可以调用它that
,$thi$
或其他任何东西(不要使用后者,但它很难看:p)因为$
它只是一个简单的JavaScript字符,就像az一样.
jon*_*ohn 34
this
在javascript(通常)表示对调用当前函数的对象的引用.这个概念有点模糊,jQuery尝试this
在.each()
循环结构中使用更友好的用户.
外的.each()
,this
表示该jQuery对象.lockDimensions
被调用.
内部的.each()
它代表当前迭代DOM对象.
通常,存储$(this)
在局部变量中的目的是防止您$()
多次调用jQuery函数,如果必须多次使用它,缓存jQueryized this
应该有助于提高效率.
$
它只是一个有效的变量名字符,用作变量名的第一个字符,通常是为程序员排队它已经是一个jQuery对象(并且有相关的方法/属性可用).
这个问题实际上与链能力无关,但为了保持链能力,你应该返回,this
以便可以添加其他函数调用,并保持this
这些调用的含义.
eva*_*van 14
你可能忽略了这一行:
var $this = $(this);
Run Code Online (Sandbox Code Playgroud)
这里,$this
只是一个包含值的变量$(this)
.您可以互换使用它,$(this)
并且您不会反复进行相同的查找.
Bil*_*oon 10
$this = $(this)
是一种缓存jQuery对象的方法.每次运行jQuery函数都很昂贵,因此存储输出允许您一遍又一遍地重复使用选择器而无需再次调用jQuery函数.
它只是填充$this
变量$(this)
,所以你不必$(this)
每次调用都要查找元素.它有更好的性能
var $this = $(this);
Run Code Online (Sandbox Code Playgroud)
这很简单:$this = $(this)
.它只是内部函数范围内使用的简写.在这种情况下,美元符号只是一个字符,它根本不涉及jQuery.这或许也同样被命名_this
或xthis
中,$
仅仅是一个什么样的变量包含提醒.
它可能看起来毫无意义,但它消除了三个冗余的方法调用($()
函数不是免费的),因此出于性能原因最有可能使用它.
在里面$.fn.lockDimensions
,this
是lockDimensions
调用它的jQuery对象.
在里面.each
,this
现在引用循环的当前迭代中的DOMElement. $(this)
将DOMElement包装在一个jQuery对象中,var $this = $(this);
只是保存$(this)
一个名为的变量$this
,因此不需要多次调用jQuery构造函数(如果你要使用它$(this)
).
$
sign通常在JavaScript中的变量名之前使用,以区分常规值和jQuery对象.所以这里$this
只获取$(this)
返回jQuery对象的值this
.$
只是有效变量名称的一部分.
归档时间: |
|
查看次数: |
85378 次 |
最近记录: |