jQuery插件使用一种模式像这样隐藏插件的专用功能:访问私有成员
(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
。有什么方法可以在不修补实际插件代码的情况下访问它?
我想也许我可以通过使用呼叫者访问私有函数的执行上下文,但没有奏效:
some_callback = function() {
console.log(some_callback.caller.a_private_function); // -> undefined
};
jQuery('selector').name_of_plugin({ onStart: some_callback });