首页 > 代码库 > JS模式--装饰者模式(用AOP动态改变函数的参数)
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动态改变函数的参数)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。