javascript - 访问 jQuery 插件的私有(private)成员

标签 javascript jquery

jQuery 插件使用这样的模式来隐藏插件的私有(private)函数:

(function ($) {
    var a_private_function = function (opts) {
        opts.onStart();
    }

    $.fn.name_of_plugin = function (options) {
        a_private_function(opts);
    }
})(jQuery);

jQuery 然后像这样使这些 fn 函数可用:

some_callback = function() {};

jQuery('selector').name_of_plugin( { onStart: some_callback } );

现在我想覆盖a_private_function。有什么方法可以在不修补实际插件代码的情况下访问它吗?

我想也许我可以通过使用调用者来访问私有(private)函数的执行上下文,但这没有用:

some_callback = function() {
    console.log(some_callback.caller.a_private_function); // -> undefined
};

jQuery('selector').name_of_plugin( { onStart: some_callback } );

最佳答案

正如我在 this answer 中了解到的那样,访问 jQuery 插件私有(private)成员的唯一方法是修改插件源代码本身。

关于javascript - 访问 jQuery 插件的私有(private)成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4087234/

相关文章:

javascript - 是否有调试 jQuery 事件处理程序的工具/技术?

javascript - jQuery根据表单输入的值改变段落跨度标签的文本

javascript - 用图像翻转 Div 或者只是图像 onClick=flip ('ID NAME' );

javascript - 使用 jquery 创建时数据库生成的列表不起作用

javascript - 使用 JavaScript.evaluate 检测 WKWebView 中的按钮单击(按类名)

javascript - 另一个 IE jQuery AJAX/post 问题

javascript - 对 Assets 文件夹中的所有图像使用react native ListView

jquery - Zurb Foundation 顶部栏菜单无法在移动显示屏上运行

javascript - 具有 15 小时延迟的 Moment.js

javascript - 禁用 JSHint 中的格式警告