职责链模式

var Chain = function(fn){
			this.fn = fn;
			this.success = null;
			this.error = null;
			this.args = [];
		}
		
		Chain.prototype.addNext = function(fn){
			return this.success = fn;
		}
		
		Chain.prototype.reuqest = function(){
			this.args = arguments;
			this.fn.apply(this,arguments);
		}
		Chain.prototype.next = function(){
			return this.success && this.success.reuqest.apply(this.success,this.args);
		}
     	
     	
     	var fn1 = new Chain(function(p){
     		console.log("1",p);
     		this.next();
     	});
     	
     	var fn2 = new Chain(function(p){
     		console.log("2",p);
     		this.next();
     	});
     	var fn3 = new Chain(function(p){
     		console.log("3",p);
     	
     	});
     	
     	fn1.addNext(fn2).addNext(fn3);
     	
     	fn1.reuqest("参数");

  

Function.prototype.after = function(fn){
     		var self = this;
     		return function(){
     			var that = this;	
     			var args = arguments;
     			self.next = function(){
     				fn.apply(that,args);
     			};
     			self.apply(self,args);
     		}
     	}
     	
     	
     	function test1(p){
     		console.log("test1",p);
     		this.next();
     	}
     	
     	function test2(p){
     		console.log("test2",p);
     		this.next();
     	};
     	
     	function test3(p){
     		console.log("test3",p);
     	}
     	
     	var order = test1.after(test2).after(test3);
     	order('order');

  

转载于:https://www.cnblogs.com/muamaker/p/7827616.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值