0

我面临以下代码设计问题:

我需要在我的网站上跟踪一些 ajax 操作,并且我有一个reachGoal(TARGET_NAME)分析功能,我需要将其插入到我想要跟踪的每个功能中:

function handler_func() {
   reachGoal(TARGET_NAME);
   // Other code
   ... 
}

$(document).ready(function() {
    $('#target_id').click(handler_func);
});

我想要的是能够从一个地方管理所有目标,如下所示:

handler_func.before(function() {
    reachGoal(TARGET_NAME);
}

是否有任何模式或技术来实现这一目标?

4

1 回答 1

2

是的,你可以创建一个装饰器函数:

var goalReacher = function (targetName, func) { 
    return function () {
        reachGoal(targetName);
        func.apply(this, arguments);
    };
};

var myCoolFunction = goalReacher("myTarget", function () {
    // your code here
});
于 2011-07-05T18:26:42.573 回答