JS 装饰模式


函数添加执行前执行指定函数和执行后执行指定函数

使用时注意原函数的属性,防止丢失


Function.prototype.before = function( beforefn ){
    var __self = this;  // 保存原函数的引用
    return function(){    // 返回包含了原函数和新函数的"代理"函数
        beforefn.apply( this, arguments );  // 执行新函数,且保证 this 不被劫持,新函数接受的参数
                                            // 也会被原封不动地传入原函数,新函数在原函数之前执行
        return __self.apply( this, arguments );  // 执行原函数并返回原函数的执行结果,
                                                 // 并且保证 this 不被劫持
    }
}
 
Function.prototype.after = function( afterfn ){
    var __self = this;
    return function(){
        var ret = __self.apply( this, arguments );
        afterfn.apply( this, arguments );  
        return ret;
    }
};

转自曾探 JS设计模式与开发实践

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值