javascript\jQuery中的$target=$(target)。需要解释语法吗

javascript\jQuery中的$target=$(target)。需要解释语法吗,javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,下面提到的示例代码是KeithWood开发的jQuery倒计时插件的一部分。有人能解释一下吗 _attachCountdown: function(target, options) { var $target = $(target); if ($target.hasClass(this.markerClassName)) { return; } $target.addClass(this.markerClas

下面提到的示例代码是KeithWood开发的jQuery倒计时插件的一部分。有人能解释一下吗

_attachCountdown: function(target, options) {
        var $target = $(target);
        if ($target.hasClass(this.markerClassName)) {
            return;
        }
        $target.addClass(this.markerClassName);
        var inst = {options: $.extend({}, options),
            _periods: [0, 0, 0, 0, 0, 0, 0]};
        $.data(target, PROP_NAME, inst);
        this._changeCountdown(target);
    }
是否有明确定义$target的原因,或者它与我们的简单变量(如var target)完全相同


提前感谢。

这是一个简单的变量,
$
只是用来向代码读取器指示jQuery集合存储在其中。Javascript对变量名非常“宽松”,而
$
没有特殊意义(与PHP相反,PHP需要在每个变量名之前使用它)


此方法(
var$target=$(target);
)用于将
$(target)
(jQuery集合本身,存储
target
)的结果保存到变量中,因此,jQuery集合不需要每次都创建。

JavaScript中的
$
对变量名有效,对其功能没有任何意义

原始作者可能保存了两次击键(如果包括shift,则保存四次),并为方便起见对其进行了重命名,但留下了
$
前缀以表示它是一个jQuery包装的对象。(就像旧传真一样。)

通过以下代码:

var $target = $(target);
脚本作者将分配给以下变量:

$target
以下表达式的结果:

$(target)
这是传递
target
变量的
jQuery()
函数(
$()
只是它的别名)的结果

总而言之,你在这里得到的是:

  • target
    JS变量(可能是决定选择器的字符串)
  • $
    JS函数(基本上是
    jQuery
    函数,但
    $
    别名通常用于编写较短的代码)
  • $target
    JS变量,用于存储
    $(目标)
    (或
    jQuery(目标)
    )表达式的结果

速度不如方便<代码>目标可以是一个选择器,在这种情况下,执行选择器四次并不十分理想。最好运行选择器一次并缓存它。保存击键是第二位的。@Amadan:虽然你所说的是非常正确的,但当你发现出现这种情况时,通常是因为懒惰而不是效率(效率通常是一种意外发现)。;-)编辑:不过,我想通过使用
$target
而不是
$t
,您可能是对的,这是预期的目的。