JS模式--装饰者模式(用AOP动态改变函数的参数)

Posted 乌梅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS模式--装饰者模式(用AOP动态改变函数的参数)相关的知识,希望对你有一定的参考价值。

 Function.prototype.before = function (beforefn) {
            var _self = this;
            return function () {
                beforefn.apply(this, arguments);
                return _self.apply(this, arguments);
            };
        };

        var func = function (param) {
            console.log(param);
        };
        func =func.before( function (param) {
            param.b = \'b\';
        });
        func({a:\'a\'});
  • 看before函数中,我们会发现他们共用一个arguments,当我们将beforefn函数体内改变arguments,原函数_self接收到的函数参数列表自然也会变化。

  • 平时我们在实际开发当中会遇到http请求中带一个Token,但是有些页面又不用或者Token生成方式不一样。
  • 请看下面代码:
 Function.prototype.before = function (beforefn) {
            var _self = this;
            return function () {
                beforefn.apply(this, arguments);
                return _self.apply(this, arguments);
            };
        };
        var getToken = function () {
            return \'token\';
        };
        var ajax = function (type, url, param) {
            console.log(param);
        };
         
        ajax = ajax.before(function (type,url,param) {
            param.Token = getToken(); 
        });
        ajax(\'get\',\'http://xx.com/getuseinfo\',{name:\'test\'});

以上是关于JS模式--装饰者模式(用AOP动态改变函数的参数)的主要内容,如果未能解决你的问题,请参考以下文章

java-装饰者模式

代理模式、装饰者模式

JS设计模式装饰者模式

javascript设计模式:装饰者模式

javascript设计模式:装饰者模式

装饰者模式