带有 jquery、全局命名空间的变量的 $ 前缀
$ prefix for variables with jquery, global namespace
我知道这可能很明显...但是当我在变量名称前面加上"$"时,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
无论您的变量是局部变量还是全局变量,它都无法改变,这取决于您。
- 将函数的上下文应用于javascript变量
- 无法导出函数expressjs/requestjs中的变量
- 函数参数中的数据与指定变量之间的任何性能差异
- 将PHP变量传递给jQuery时遇到问题
- 如何通过ajax刷新JSF填充的javascript变量
- 参数变量出现ngTable指令问题
- 通过javascript重定向html传递php变量
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 全局变量和全局对象的属性之间有什么区别吗
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 值对象在某个变量发生更改后发生更改
- Javascript变量赋值|
- AngularJS-在JSON选择器中使用变量名
- Javascript计数器变量未显示正确的值
- delete关键字在全局变量上的不同行为
- 带有 jquery、全局命名空间的变量的 $ 前缀
- $issue作为前缀jquery变量名
- 在javascript中定义带/不带var前缀的变量
- JavaScript中的单个冒号作为变量的前缀(而不是对象文字)
- Babel 在特定场景中用下划线为变量前缀