码迷,mamicode.com
首页 > 其他好文 > 详细

AOP 动态添加函数

时间:2019-03-09 20:30:31      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:图片   保存   show   bsp   play   函数   code   src   hid   

技术图片
Function.prototype.before = function(beforefn) {
    
    // 保存原函数的引用
    var self = this;
    
    // 返回包含了原函数和新函数的代理函数
    return function() {

        // 执行新函数,修正this
        beforefn.apply(this, arguments);

        // 执行原函数
        return self.apply(this, arguments);
    };
};

Function.prototype.after = function (afterfn) {
    var self = this;
    return function () {

        // 先调用 调用的函数,在调用afterfn
        // 调用这个函数的也是一个函数
        var ret = self.apply(this, arguments);
        afterfn.apply(this, arguments);
        return ret;
    };
};

var func = function () {
    console.log(2);
};


// 每次使用之前都要这么写一遍
function init(fn) {
    fn = fn.before(function () {
        console.log(1);
    })
    .after(function () {
        console.log(3);
    });    

    return fn;
}

func = init(func);

func();
View Code

 

AOP 动态添加函数

标签:图片   保存   show   bsp   play   函数   code   src   hid   

原文地址:https://www.cnblogs.com/tujw/p/10502724.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!