当函数执行Jquery时执行某些操作

Rya*_*axe 0 javascript jquery

所以我有一个递归反转颜色的函数.这是代码:

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);
};
Run Code Online (Sandbox Code Playgroud)

所以基本上我有一个可以在很多实例中调用的函数(特定id的点击,悬停在特定的类上等),我不知道所有这些.但我需要知道每次调用此函数.如何设置一个外部代码行来设置一个变量,该变量等于调用函数的次数?

Pau*_* S. 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));
Run Code Online (Sandbox Code Playgroud)

如果您也需要调用它invert,请invert在之后重新分配.

invert = wrapped;
invert.count; // 0
invert();
invert.count; // 1
invert();
invert.count; // 2
Run Code Online (Sandbox Code Playgroud)