У меня есть существующий плагин jQuery, теперь я хочу его расширить. Рассмотрим приведенный ниже плагин:
$.fn.x = function(option) {
var def = {
a: 1,
b: 2
};
option = $.extend(def, option);
function abc() {
//do something
}
function def() {
//do something
}
};
Теперь вышеописанный плагин, который я получил откуда-то. Мне нужно иметь пользовательское поведение для метода abc, скажем
function abc() {
//do something else
}
Я не хочу менять существующий плагин. Можете ли вы рассказать мне, как я могу добиться того же, расширив его или создав собственный пользовательский плагин?
EDIT: Я тоже пробовал это с помощью метода, упомянутого ниже:
(function($) {
$.fn.x = function(option) {
var defaults = {
a: 1,
b: 2
};
option = $.extend(def, option);
function abc() {
//do something
console.log('Base method called');
}
function def() {
//do something
abc();
}
def();
};
})(jQuery);
(function() {
var x = $.fn.x;
$.fn.x.abc = function() {
console.log('Overidden method called');
//_x.abc();
};
})();
$('<div/>').x();
Но я все еще получаю "базовый метод, называемый" в качестве вывода консоли.