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/