Javascript在代码中的一个位置进行修饰

Javascript在代码中的一个位置进行修饰,javascript,decorator,code-design,Javascript,Decorator,Code Design,我面临以下代码设计问题: 我需要跟踪我网站上的许多ajax操作,我有一个reachGoal(TARGET\u NAME)分析功能,我需要将它插入到我想要跟踪的每个功能中: function handler_func() { reachGoal(TARGET_NAME); // Other code ... } $(document).ready(function() { $('#target_id').click(handler_func); }); 我想要的是能

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

我需要跟踪我网站上的许多ajax操作,我有一个
reachGoal(TARGET\u NAME)
分析功能,我需要将它插入到我想要跟踪的每个功能中:

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

$(document).ready(function() {
    $('#target_id').click(handler_func);
});
我想要的是能够从一个地方管理所有目标,比如:

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

是否有任何模式或技术可以实现这一点?

是的,您可以创建装饰功能:

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

var myCoolFunction = goalReacher("myTarget", function () {
    // your code here
});

你的意思是我也可以做
$('#target_id')。单击(goalReacher(“myTarget”,function(){…}))