带有 jquery、全局命名空间的变量的 $ 前缀

$ prefix for variables with jquery, global namespace

本文关键字:变量 前缀 命名空间 jquery 全局 带有      更新时间:2023-09-26

我知道这可能很明显...但是当我在变量名称前面加上"$"时,jQuery 到底在做什么。我知道这是将变量放在全局命名空间中,但为什么呢?

这是完全错误的。

$是一个普通对象(实际上是一个函数),恰好有一个短名称。

$本身是全局的(window对象的属性)

在 JavaScript 中,$ 是变量名中的有效字符。 向变量添加$并没有什么特别之处。

var $a;
var a$b;
var $;

这些只是变量,没有特殊意义。

jQuery只是使window.$引用合成糖的window.jQuery:-)

$开头的变量(例如 var $myvar; ) 只是另一个变量,没有任何不同。

编辑:

如果"前缀"的意思是:

$(myvar)

这不是"前缀"。我认为这被称为"包装"。它"增强"变量。您甚至可以"包裹"window本身......http://www.bennadel.com/blog/1838-Wrapping-The-Window-Object-In-A-jQuery-Wrapper.htm

它的作用与jQuery(myvar)相同。 jQuery是一个函数(如果你愿意的话,是一个可调用的对象)。

您是否声明了一个名称以 $ 为前缀的变量?

如果你写这个:

$test = 500;

那么是的,你用一个名为 $test 的变量污染了全局命名空间,它与任何其他变量没有什么不同($没有特殊效果)。 但是在 JQuery 中,您很可能正在这样做:

$('test')

这只是一个简单的函数调用。函数名称为 $ ,参数为 'test'

你的意思是当你在做的时候:

var $li = $("li");

您正在以li为前缀$. 你怎么称呼你的变量并不重要,如果你想使用前缀,$这取决于你。如果在调试代码时知道$variableName是 jQuery 对象对您有所帮助。

jQuery无法改变javascript语言的工作方式。

有两种

方法可以创建全局变量

globalVariable = ...

window.globalVariable = ...

第一个不适用于javascript严格模式

当 jquery.js 被执行时,它会添加到窗口对象的全局函数中$ 和 jQuery

无论您的变量是局部变量还是全局变量,它都无法改变,这取决于您。