在Javascript / jQuery中包装一个函数

前端之家收集整理的这篇文章主要介绍了在Javascript / jQuery中包装一个函数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我有一个任意函数myFunc,我打算做的是用执行代码之前和之后的代码来替换这个函数,例如
// note: psuedo-javascript

var beforeExecute = function() { ... }
var afterExecute = function() { ... }

myFunc = wrap(myFunc,beforeExecute,afterExecute);

但是,我没有实现所需的wrap函数.有没有什么已经存在于jQuery这样(我已经看了很多文档但看不到任何东西)?或者,任何人都知道这是一个很好的实现,因为我怀疑有一堆边缘的情况,我会想念,如果我试图自己写?

(BTW – 这样做的原因是做一些功能自动化测试,因为我们在没有Javascript分析器等的封闭设备上做了大量的工作,如果有一个比这更好的方法,我会很欣赏这些线路的答案太.)

解决方法

这是一个包装函数,它将使用完全相同的参数来调用前后函数,如果提供,则返回相同的值:
var wrap = function (functionToWrap,before,after,thisObject) {
    return function () {
        var args = Array.prototype.slice.call(arguments),result;
        if (before) before.apply(thisObject || this,args);
        result = functionToWrap.apply(thisObject || this,args);
        if (after) after.apply(thisObject || this,args);
        return result;
    };
};

myFunc = wrap(myFunc,afterExecute);
原文链接:https://www.f2er.com/jquery/155499.html

猜你在找的jQuery相关文章