首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery如何实现为jQuery函数创建$别名?

jQuery如何实现为jQuery函数创建$别名?
EN

Stack Overflow用户
提问于 2011-01-26 03:30:04
回答 4查看 15.7K关注 0票数 20

我在理解$符号是jQuery函数的别名时遇到了一些麻烦,特别是在插件中。你能解释一下jQuery是如何实现这种别名的吗?它是如何将'$‘定义为jQuery函数的别名的?这是第一个问题。

其次,你能解释一下下面的代码如何/为什么在插件的定义中将'$‘映射到jQuery函数吗?为什么如果你不这样做,你的插件可能会与其他可能使用美元符号的库发生冲突?

代码语言:javascript
运行
复制
(function( $ ){
    $.fn.myPlugin = function() {
        // Do your awesome plugin stuff here
    };
})(jQuery);
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-01-26 03:36:06

函数,就像javascript中的任何对象一样,可以被赋值给变量。此变量可以具有任何名称(遵循JS变量命名规则)。"$“满足命名规则,因此为简洁起见,jQuery函数别名为"$”。考虑以下示例:

代码语言:javascript
运行
复制
var myFn = function() { alert('myFunc'); };
var $ = myFn;

$();
// alerts 'myFunc'
票数 14
EN

Stack Overflow用户

发布于 2011-01-26 03:32:51

它只是声明了一个变量。请参阅here

jQuery本身就是一个很大的自执行函数。这意味着它声明了一个函数,然后运行它。在函数内部,它声明了本地jQuery对象,这是一个函数。

然后它将在它的末尾设置window.jQuery = window.$ = jQuery

这是将window.jQuerywindow.$都设置为本地jQuery对象。我们可以通过使全局变量成为window对象的属性来设置它们。

现在window.jQuerywindow.$都指向jQuery,因为对象是通过引用传递的。

代码语言:javascript
运行
复制
var jQuery = (function() {

    var jQuery = function( selector, context ) {
        ...
    };

    ...

    return (window.jQuery = window.$ = jQuery);

}());

它实际声明了两次jQuery,因为在查找变量时,它不必向上查找额外的外部函数。

您可以使用两个这样的赋值,因为(var a = b) === b

正如其他人提到的那样,$是一个合法的变量名,而函数是一级对象,因此我们可以将它们作为对象来处理,这也有助于实现这一点。

票数 25
EN

Stack Overflow用户

发布于 2011-01-26 03:34:13

确切的代码(来自jquery-1.4.1-vsdoc.js):

代码语言:javascript
运行
复制
// Expose jQuery to the global object
window.jQuery = window.$ = jQuery;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4797956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档