Вы можете перепять имена на новые функции, которые вызывают их предыдущие воплощения, а затем вызвать console.log()
.
Что-то вроде:
$.each(["one", "two", "three"], function(index, name) {
var originalMethod = $.fn[name];
$.fn[name] = function() {
var result = originalMethod.apply(this, arguments);
console.log(name + "() done.");
return result;
};
});
Если вы хотите применить это поведение для всех методов в прототипе Jquery, вы можете перебрать $.fn
себя и только функции процесса:
for (var name in $.fn) {
// Create a new scope so 'originalMethod' is still bound to the
// right method by the time our new '$.fn[name]()' is invoked.
(function(originalMethod) {
if ($.isFunction(originalMethod)) {
$.fn[name] = function() {
var result = originalMethod.apply(this, arguments);
console.log(name + "() done.");
return result;
};
}
})($.fn[name]);
}
Ницца, как о способ доступа ко всем объявленным методам вместо их перечисления в массиве? –
* Все * методы в прототипе jQuery? Ты уверен? –
Нет просто методов, которые я объявил не встроенными. –