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

时间:2011-05-27 20:19:16

标签: javascript jquery jquery-plugins

下面提到的示例代码是Keith Wood的jQuery Countdown插件的一部分。有人可以解释一下

_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。)相同。

提前致谢。

3 个答案:

答案 0 :(得分:6)

这是一个简单的变量,只是添加了$来向代码阅读器指示jQuery集合存储在其中。 Javascript对变量名称非常“宽容”,$没有特殊含义(与每个变量名称之前需要的PHP相对)。

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

答案 1 :(得分:2)

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

原作者可能会保存两次击键(如果你包括shift,则为四次)并为方便起见重命名,但留下$前缀来表示它是一个jQuery包装的对象。 (把它想象成旧的Hungarian Notation传真。)

答案 2 :(得分:1)

通过以下代码:

var $target = $(target);

脚本的作者分配给以下变量:

$target

以下表达式的结果:

$(target)

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

总而言之,你在这里拥有的是:

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