javascript - jQuery 插件如何维护全局状态?

标签 javascript jquery jquery-plugins

我最近写了我的第一个简单的 jQuery 插件。我很自豪。

http://jsfiddle.net/johnhoffman/wSeLY/1/

(function($) {
    $.fn.makeRed = function() {
        return this.each(function() {
            $(this).css("color", "#f00");
        });
    }
})(jQuery);

我想知道为什么它会起作用。我将 jQuery 对象传递给这个立即运行的封闭函数。

随后,|$| 不是吗?在该匿名函数中对象局部变量?它如何改变全局单例 jQuery 对象?

换句话说,我不就是通过$.fn.myFunctionName 向对象|$| 添加了一个函数吗?封闭函数的局部?它如何更改全局 jQuery 对象并使我的函数 (makeRed) 可用于脚本全局范围内的选择器?

最佳答案

isn't the |$| object a local variable within that anonymous function?

是的,$ 是函数中的局部变量,但是,这是一个很大的 but,它是对全局可访问的 jQuery 对象的引用。事情看起来像这样:

window.jQuery (global) ----->-----> { ... }
                                    ^
                                    |
$ (local) ------------------>-------+

因此,您有两个指向同一个对象的变量,并且在调用匿名函数后该对象仍然存在。

关于javascript - jQuery 插件如何维护全局状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10222743/

相关文章:

jquery - 有没有类似extjs suberboxselect的jquery插件?

javascript - 如何让node js express服务器并行处理请求

javascript - jQuery 插件 - 添加方法

c# - 如何在 .NET Webforms 中使用 Jquery AJAX 将数据发布到 MySQL

javascript - 根据按钮的点击增加隐藏输入的值

jquery - 如何在 jquery UI 工具提示中添加右(水平)箭头?

jQuery 全日历 : Disable scrolling in Agenda View?

javascript - 使用 api v3 绘制多条编码多段线

javascript - 使用随机数生成器更改 CSS 中的属性值

javascript - 如何修复 javascript .toFixed is not a Function 错误