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 });