在不同的站点上,jQuery的$变量被称为别名,而在其他站点上,它被称为工厂。我看了一下源代码,我认为前者是正确的。据我所知,美元符号的定义如下:
// Expose jQuery to the global object
return (window.jQuery = window.$ = jQuery);
这是将$和jQuery设置为相同的别名;jQuery对象没有“工厂”。这些网站将$称为“工厂”是完全错误的吗?
可能重复:
我正在查看jQuery源代码,有几行代码我没有得到。
// Map over jQuery in case of overwrite
_jQuery = window.jQuery,
// Map over the $ in case of overwrite
_$ = window.$,
我的问题是上面的代码是做什么的?它怎麽工作?我猜想它是负责jQuery和$对象的,但是我不能把我的头脑围绕在它上面。
我对Javascript了解很多,但是这个特别的东西让我摸不着头脑。实际上,我有一个这样的类:
$(document).ready(function() {
// jQuery Object
var $ = jQuery;
// A general class for a general file.
var MyClass = function() {
// ...
}
MyClass.prototype = {
init: function() {
// ...
}
}
new generalClass();
});
我像这样将
为什么大多数jQuery插件都基于结构:
(function($)
{
// do stuff with $
})(jQuery)
我认为这个结构等同于这个简单的结构:
// do stuff with object 'jQuery'
因为我认为第一个结构定义了一个函数,并使用输入参数jQuery调用它,为什么我们应该这样做,我们可以忽略该函数,并使用object jQuery执行代码,而不需要任何额外的函数
谁能告诉我为什么第一个结构更好,更多人使用?