问题描述
|
下面提到的示例代码是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]};
$.data(target,PROP_NAME,inst);
this._changeCountdown(target);
}
是否有理由专门定义$ target或与我们的简单变量(如var target)相同。
提前致谢。
解决方法
这是一个简单的变量,只是添加了ѭ1,以向代码阅读器指示内部已存储jQuery集合。 Javascript带有变量名,相当“宽松” ,,1ѭ没有特殊含义(与PHP相反,在每个变量名之前都需要使用PHP)。
此方法(
var $target=$(target);
)用于将$(target)
的结果(jQuery集合本身,存储target
)保存到变量中,因此不需要每次都需要创建jQuery集合。
, JavaScript中的“ 1”对变量名有效,对其功能没有任何意义。
最初的作者可能保存了两次击键(或者,如果包含shift,则为四个),并且为了方便起见将其重命名,但是留下了“ 1”前缀来表示它是一个jQuery包装的对象。 (将其视为旧的匈牙利符号传真机。)
, 通过以下代码:
var $target = $(target);
脚本的作者将分配给以下变量:
$target
以下表达式的结果:
$(target)
这是将target
变量传递给jQuery()
函数的结果($()
仅是其别名)。
因此,总而言之,这里的内容是:
target
JS变量(可能是一些字符串决定了选择器),
$
JS函数(基本上是jQuery
函数,但the1ѭ别名通常用于编写较短的代码),
$target
JS变量,用于存储$(target)
(或jQuery(target)
)表达式的结果