在以下 JavaScript 代码中有一个美元 ( $
) 符号。这是什么意思?
$(window).bind('load', function() {
$('img.protect').protectImage();
});
原文由 coderex 发布,翻译遵循 CC BY-SA 4.0 许可协议
在以下 JavaScript 代码中有一个美元 ( $
) 符号。这是什么意思?
$(window).bind('load', function() {
$('img.protect').protectImage();
});
原文由 coderex 发布,翻译遵循 CC BY-SA 4.0 许可协议
来自 另一个答案:
一点历史
请记住, $
本身并没有什么特别之处。它和其他变量名一样是一个变量名。在早期,人们习惯于使用 document.getElementById 编写代码。因为 JavaScript 区分大小写,写错 document.getElementById
是正常的。我应该资本 'b'
'by'
吗?我应该资本 'i'
Id?
你明白了。因为函数在 JavaScript 中是一等公民,所以你总是可以这样做:
var $ = document.getElementById; //freedom from document.getElementById!
当 Prototype 库到达时,他们将获取 DOM 元素的函数命名为 '$'
。几乎所有的 JavaScript 库都复制了这个想法。 Prototype 还引入了一个 $$
函数来使用 CSS 选择器选择元素。
jQuery 还改编 $
函数,但进行了扩展以使其接受各种“选择器”以获取所需的元素。现在,如果您已经在您的项目中使用 Prototype 并希望包含 jQuery,那么您将遇到问题,因为 '$'
可以参考 Prototype 的实现或 jQuery 的实现。这就是为什么 jQuery 有 noConflict 选项的原因,这样你就可以在使用 Prototype 的项目中包含 jQuery 并慢慢迁移你的代码。我认为这是 John 的绝妙举动! :)
原文由 SolutionYogi 发布,翻译遵循 CC BY-SA 4.0 许可协议
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答875 阅读✓ 已解决
6 回答1k 阅读
2 回答1.3k 阅读✓ 已解决
您的代码片段看起来像是引用了流行的 JavaScript 库(jQuery、ProtoType、mooTools 等)之一的方法。
在 JavaScript 中使用
$
并不神秘。$
只是一个有效的 JavaScript 标识符。 JavaScript 允许大写和小写字母(在各种脚本中,不仅仅是英语)、数字(但不是第一个字符)、$
、_
等.¹Prototype、jQuery 和大多数 javascript 库使用
$
作为主要的基础对象(或函数)。他们中的大多数人也有办法放弃$
以便它可以与使用它的另一个库一起使用。在这种情况下,您使用jQuery
而不是$
。事实上,$
只是jQuery
的快捷方式。¹ 对于标识符的第一个字符,JavaScript 允许 _“…任何具有 Unicode 属性“IDStart”的 Unicode 代码点…” 加上
$
和_
; 规范中的 详细信息。对于标识符中的后续字符, 它允许 带有ID_Continue
的任何字符(包括_
)和$
字符(以及一些历史控制字符)。