有没有办法在Angularjs / javascript中执行工厂/类的每个方法之前/之后调用函数

时间:2016-09-02 10:29:06

标签: javascript angularjs

在java,ruby和许多其他语言中,我们具有在执行方法之前/之后调用函数的功能,这些功能主要由所使用的框架给出。甚至Jasmine(单元测试库)也有方法beforeEach(在每个it块之前执行给定的块)。

有没有办法在Angularjs / javascript中执行此操作,以便可以在调用任何类或工厂方法之前执行它?

1 个答案:

答案 0 :(得分:0)

您可以将函数包装在一个新函数中,以便在执行之前和之后执行一些常见操作,请参阅以下代码段:



var wrappedFunction = function(fn) {
  return function(){
    console.log("Before execute " + fn.name);
    var retValue = fn.apply(this, arguments);
    console.log("After execute " + fn.name);
    return retValue;
  };
};

function funcTest1(par) {
  console.log("funcTest1 -> Par is: " + par);
};

function funcTest2(param) {
  console.log("funcTest2 -> Param value is: " + param);
};

var funcTest1Wrapped = wrappedFunction(funcTest1);
var funcTest2Wrapped = wrappedFunction(funcTest2);

funcTest1Wrapped("Test1");
funcTest2Wrapped("Test2");




我希望它可以帮助你,再见。