围绕$ sign作为jQuery函数的别名,我有点麻烦,特别是在插件中.你能解释一下jQuery如何实现这种别名:它如何定义'$'作为jQuery函数的别名?这是第一个问题.
其次,你能解释下面的代码如何/为什么在插件的定义中将'$'映射到jQuery函数,为什么如果你不这样做,你的插件可能会与其他可能使用美元符号的库发生冲突?
(function( $ ){
$.fn.myPlugin = function() {
// Do your awesome plugin stuff here
};
})(jQuery);
Run Code Online (Sandbox Code Playgroud)
Ray*_*nos 25
它只是声明一个变量.看到这里
jQuery本身就是一个很大的自执行功能.这意味着它声明了一个函数然后运行它.在函数内部,它声明了jQuery
一个函数的本地对象.
然后它将在它设置的最后 window.jQuery = window.$ = jQuery
这是设置window.jQuery
和window.$
本地jQuery
对象.我们可以通过使它们成为window
对象的属性来设置全局变量.
现在,这两个window.jQuery
和window.$
两个点jQuery
,因为对象是通过引用传递.
var jQuery = (function() {
var jQuery = function( selector, context ) {
...
};
...
return (window.jQuery = window.$ = jQuery);
}());
Run Code Online (Sandbox Code Playgroud)
因为在查找变量时它不需要向上查看额外的外部函数,因此它会小规模地声明jQuery两次以获得小的效率增益.
您可以使用这样的两个分配,因为 (var a = b) === b
正如其他人提到的那样,这$
是一个有力的变量名称,而且函数是第一类对象,因此我们可以将它们视为对象也有助于实现这一目标.
typ*_*eof 13
与javascript中的任何对象一样,函数可以分配给变量.此变量可以具有任何名称(遵循JS变量命名规则)."$"满足命名规则,因此为简洁起见,jQuery函数别名为"$".请考虑以下示例:
var myFn = function() { alert('myFunc'); };
var $ = myFn;
$();
// alerts 'myFunc'
Run Code Online (Sandbox Code Playgroud)