【发布时间】:2012-10-03 20:21:04
【问题描述】:
有时在 JQuery 中我们将变量定义为var $a=$(),这就像声明一个函数。所以我想知道如果我们只将变量定义为var a,它会有什么改变吗?
【问题讨论】:
-
你的意思是“没有 $ 符号”吗?如果是这样,那就没什么区别了,它只是一个约定,有时用来表明你正在使用一个 jQuery 对象。
标签: javascript jquery coding-style
有时在 JQuery 中我们将变量定义为var $a=$(),这就像声明一个函数。所以我想知道如果我们只将变量定义为var a,它会有什么改变吗?
【问题讨论】:
标签: javascript jquery coding-style
如果你的意思是:
var a = $(/* Object or Selector gets passed here */)
那么唯一的区别就是名称。开发者使用$a表示该值已经是jQuery-ied。不使用它不会改变任何功能,但会对未来的开发人员不利。
【讨论】:
不,没有什么不同。在这种情况下,$a 与 a 相同。它只是一个变量名。
【讨论】:
通常我更喜欢在命名 jQuery 对象前加上 $ 符号。这是在代码中识别 jQuery 对象的惯例。
但这只是另一个变量名;;
var a = 2;
var $a = $('#something');
【讨论】:
基本上,这是对 javascript 允许的 Crockford's coding convention 违规行为。它用于区分 jQuery 对象和 javascript DOM 元素。
例如
var a = document.getElementById('a'); // DOM element
var $a = $(a); // jQuery object for the DOM element with ID 'a'
【讨论】:
$ 是 JS 标识符中允许的字符,它没有区别。 $(obj) 用 jQuery 对象包装了对象 obj,并用许多额外的行为来装饰 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 包装器。
【讨论】: