码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2017-03-07 15:14:21      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:url   开发   token   aop   span   img   ken   函数参数   sel   

 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动态改变函数的参数)

标签:url   开发   token   aop   span   img   ken   函数参数   sel   

原文地址:http://www.cnblogs.com/meiyh/p/6514845.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!