下面提到的示例代码是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。)相同。
提前致谢。
答案 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变量