所以我有一个递归反转颜色的函数。这是代码:
function invert(id,what){
var color = $(id).css(what);
var matchColors = /rgb\((\d{1,3}), (\d{1,3}), (\d{1,3})\)/;
var match = matchColors.exec(color);
var r = (255 - match[1]).toString() + ",";
var g = (255 - match[2]).toString() + ",";
var b = (255 - match[3]).toString();
answer = 'rgb(' + r + g + b + ')' ;
$(id).css(what,answer);
};
所以基本上我有一个可以在很多实例中调用的函数(特定id的点击,悬停在特定的类上等),我不知道所有这些。但我需要知道每次调用此函数。如何设置一个外部代码行来设置一个变量,该变量等于函数被调用的次数?
答案 0 :(得分:6)
包裹您的功能。
var wrapped = (function wrapper(present) {
function wrapping() {
++wrapping.count; // increment invocation count
return present.apply(this, arguments);
}
wrapping.count = 0; // counter, avaliable from outside too
return wrapping;
}(invert));
如果您还需要将其称为invert
,请在之后重新分配invert
。
invert = wrapped;
invert.count; // 0
invert();
invert.count; // 1
invert();
invert.count; // 2
答案 1 :(得分:0)
我不确定您的确切方案是什么,但也许您可以使用包装器覆盖该功能:
var invertOriginal = invert;
var counter = 0;
var invert = function(id, what, max) {
invertOriginal(id, what, max);
// do counter stuff here, e.g.
counter++;
};