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

时间:2012-08-15 19:09:29

标签: javascript jquery

我知道这可能很明显......但是当我用'$'作为变量名前缀时,jQuery究竟在做什么。我知道这是将变量放在全局命名空间中,但为什么呢?

6 个答案:

答案 0 :(得分:7)

这完全是假的。

$是一个普通的对象(实际上是一个函数)碰巧有一个简短的名字。

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

答案 1 :(得分:2)

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

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

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

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

答案 2 :(得分:1)

$开头的变量(例如var $myvar;)只是另一个变量,在任何方面都没有区别。

修改

如果通过“前缀”表示你的意思:

$(myvar)

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

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

答案 3 :(得分:0)

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

如果你这样写:

$test = 500;

然后是的,您使用名为$test的变量污染全局命名空间,这与任何其他变量没有区别($没有特殊效果)。但是在JQuery中,你最有可能这样做:

$('test')

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

答案 4 :(得分:0)

你的意思是你在做什么:

var $li = $("li");

您在li前加$作为前缀。如果您想使用$前缀,那么无论您调用变量是什么都无关紧要。如果知道$ variableName是jQuery对象,那么在调试代码时它会有所帮助。

答案 5 :(得分:0)

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

有两种方法可以创建全局变量

globalVariable = ...

window.globalVariable = ...

第一个不使用javascript严格模式

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

它不能改变你的变量是局部的还是全局的,这取决于你。