定义变量时,var $a=$()和var a之间的区别是什么?

8
有时在JQuery中,我们将变量定义为var $a=$(),这就像声明一个函数。那么我想知道,如果我们只定义变量为var a,是否会有任何变化?

你的意思是“没有美元符号”吗?如果是这样,那么没有区别,这只是一种惯例,有时用于指示您正在使用jQuery对象。 - James Allardice
5个回答

4
如果您的意思是:
var a = $(/* Object or Selector gets passed here */)

那么唯一的区别就在于名称。开发人员使用$a来表示该值已经是jQuery化的。省略它不会改变任何功能,但对未来的开发人员来说可能是一种不好的服务。


$()是jQuery函数的快捷方式。它可以传递一个对象或选择器。http://api.jquery.com/jQuery/ - Justin Niessner

2

通常我喜欢在jQuery对象的名称前加上$符号。这是一种在代码中识别jQuery对象的约定。

但它只是另一个变量名而已。;;

var a = 2;
var $a = $('#something');

2
基本上,这是一种允许违反Crockford的JavaScript编码规范的做法。它用于区分jQuery对象和JavaScript DOM元素。
例如:
var a = document.getElementById('a'); // DOM element
var $a = $(a); // jQuery object for the DOM element with ID 'a'

2
不,它们没有区别。在这种情况下,$aa 是相同的,它只是一个变量名。

1

$是JS标识符中允许的字符,没有任何影响。$(obj)将对象obj包装成jQuery对象,并为obj添加了大量的附加行为。

这些都是合法的Javascript变量名:

$a=1;
a$$$=1;
$a=1;

$函数是jQuery的别名,如果你这样做:

你的HTML:

<img src='logo.png' id='site_logo'/>

你的JS:

var logo = $('#site_logo');
logo.fadeOut();

方法fadeOut不属于img元素,而是属于jQuery包装器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接