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动态改变函数的参数)的主要内容,如果未能解决你的问题,请参考以下文章