cod*_*rex 155 javascript
在以下JavaScript代码中,有一个dollar($)符号.这是什么意思?
$(window).bind('load', function() {
$('img.protect').protectImage();
});
Run Code Online (Sandbox Code Playgroud)
Nos*_*dna 272
您的代码片段看起来像是从一个流行的JavaScript库(jQuery,ProtoType,mooTools等)引用方法.
$在JavaScript中的使用并不神秘.$只是一个有效的JavaScript标识符.
JavaScript允许上下字母,数字和$和_.它$旨在用于机器生成的变量(例如$0001).
Prototype,jQuery和大多数javascript库使用它$作为主要基础对象(或函数).他们中的大多数也有办法放弃$它,以便它可以与另一个使用它的库一起使用.在这种情况下,你使用jQuery而不是$.事实上,$这只是一个捷径jQuery.
Sol*_*ogi 38
从另一个答案:
有点历史
请记住,'$'没有任何固有的特殊之处.它是一个变量名称,就像其他任何名称一样.在早些时候,人们习惯使用document.getElementById编写代码.因为JavaScript区分大小写,所以在编写document.getElementById时出错是正常的.我应该资本'b'的'by'吗?我应该资助我的Id吗?你得到漂移.因为函数是JavaScript中的一等公民,所以您始终可以执行此操作
var $ = document.getElementById; //freedom from document.getElementById!
Run Code Online (Sandbox Code Playgroud)
[ 编辑:在Firefox 3和谷歌浏览器中,你不能轻易制作别名.在IE6和Firefox2中,上述技术仍然有效.]
当Prototype库到达时,他们命名他们的函数,它获取DOM元素,'$'以节省输入/可读性[编写JS代码时,大多数时候开始选择一些DOM元素].几乎所有的JavaScript库都复制了这个想法.Prototype还引入了$$函数来使用CSS选择器选择元素.
jQuery不仅调整了'$ function',还扩展了它,使它接受所有类型的'选择器'来获得你想要的元素.现在,如果您已经在项目中使用Prototype并想要包含jQuery,那么您将遇到问题,因为'$'可以引用Prototype的实现或jQuery的实现.这就是为什么jQuery可以选择noConflict,这样你就可以在项目中包含jQuery,它使用Prototype并慢慢迁移你的代码.我认为这对John来说是一次精彩的举动!:)
Bob*_*Bob 17
正如所有其他答案所说; 它几乎可以是任何东西,但通常是"JQuery".
但是,在ES6中,它是模板"文字"中的字符串插值运算符,例如.
var s = "new" ; // you can put whatever you think appropriate here.
var s2 = `There are so many ${s} ideas these days !!` ; //back-ticks not quotes
console.log(s2) ;
Run Code Online (Sandbox Code Playgroud)
结果:
这些天有很多新想法!
小智 5
除了上面的答案之外,$在javascript中没有特殊含义,可以随意用于对象命名。在jQuery中,它只是用作jQuery对象和jQuery()函数的别名。然而,你可能会遇到这样的情况:你想将它与另一个也使用 $ 的 JS 库结合使用,这会导致命名冲突。JQuery 中有一个方法就是为了这个原因,jQuery.noConflict().
这是jQuery文档的示例:
<script src="other_lib.js"></script>
<script src="jquery.js"></script>
<script>
$.noConflict();
// Code that uses other library's $ can follow here.
</script>
Run Code Online (Sandbox Code Playgroud)
或者,您也可以使用这样的
(function ($) {
// Code in which we know exactly what the meaning of $ is
} (jQuery));
Run Code Online (Sandbox Code Playgroud)
参考: https: //api.jquery.com/jquery.noconflict/
| 归档时间: |
|
| 查看次数: |
240704 次 |
| 最近记录: |