1

我想知道 JQuery 如何将函数名分配给 $ ?

4

5 回答 5

12

这是在9384未压缩库的行完成的(请参阅http://code.jquery.com/jquery-1.7.2.js

// Expose jQuery to the global object
window.jQuery = window.$ = jQuery;

这个赋值的jQuery右侧是函数范围的引用(从 line 开始22):当然你可以创建你最喜欢的快捷方式(例如_)做类似的事情

window._ = window.jQuery

加载库后,您可以使用_代替$or jQuery

如果你问这个是因为你已经加载了一些其他的库并且你和引用有冲突,$看看jQuery.noConflict()方法

于 2012-04-05T10:21:21.947 回答
5

与他们将函数分配给任何其他变量名称的方式相同。$函数名中的字符没有什么特别之处。

jQuery使用的具体方式可以在他们的源码中找到

window.$ = _$;
于 2012-04-05T10:19:15.943 回答
0

我认为他们只是做

window.$ = jQuery;

更准确地说,他们首先节省 $

var jQuery = (function() {

// Define a local copy of jQuery
var jQuery = function( selector, context ) {
    // The jQuery object is actually just the init constructor 'enhanced'
    return new jQuery.fn.init( selector, context, rootjQuery );
},

// Map over jQuery in case of overwrite
_jQuery = window.jQuery,

// Map over the $ in case of overwrite
_$ = window.$,
于 2012-04-05T10:20:30.733 回答
0

它应该只是全局范围内的正常分配。

$ = Jquery;

应该进行一些安全检查以确保 $ 尚未定义。

于 2012-04-05T10:21:38.787 回答
0

与此类似:

window.$ = function() {
    alert('Hello world!');
}

$();

JavaScript 函数名没有什么特别之处$。这也是可以接受的:

function $() {
    alert('Hello world!');
}
于 2012-04-05T10:22:27.407 回答