javascript实现AOP

本文详细介绍了如何通过扩展Function.prototype实现方法的前后执行,并通过示例代码展示了应用过程。
// 通过扩展Function.prototype实现的。

Function.prototype.before = function(beforeFn){
    var _self = this;
    return function(){
        beforeFn.apply(this,arguments); // 先提前调用 before方法
        return _self.apply(this,arguments); // 返回自身对象。
    }
}

Function.prototype.after = function(afterFn){
    var _self = this;
    return function(){
        var ret = _self.apply(this,arguments); // 先执行自身
        afterFn.apply(this,arguments); // 执行后续方法
        return ret; // 返回自身对象
    }
}
var test = function(){
    console.log('hello');
}

test = test.after(function(){
    console.log('after');
})

test = test.before(function(){
    console.log('before');
});

test();


// 最后

204416_2nGr_1037170.png

转载于:https://my.oschina.net/bosscheng/blog/472662

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值