js事件设计模式-事件处理流程传参问题

			function creatfunction(obj,skill){//这里写一个将处理事件流程的函数转化为无参数函数的函数(其实就是在它外层包一个无参数函数)
			if(!obj){obj=window;}			//如果没传入哪个对象的参数 让他默认指向window			
			var arr=[];						//建立一个空数组 用来存放传进来的事件参数
			for(var i=2;i<arguments.length;i++){
				arr.push(arguments[i]);		//用for循环 和隐式类数组参数arguments剔除干扰参数
			} 								//仅仅留下事件处理所需参数
			return function(){				//返回这个无参数函数(一个空壳而已)
				obj[skill].apply(obj,arr);	//用apply巧妙得到事件处理函数的流程
											
			}
			}
			
			function Person(){}
			Person.prototype={
				show:function(){
					this.onshow();			//这里写一个抽象函数(抽象方法)
				},
				onshow:function(){			//事件处理流程的api接口
											//测试时 发现不写也没什么影响...
				}
			}
			
			
			function add(a,b){				//创造未来需要的事件处理流程函数
				alert(a+b);
			}
			
			var man=new Person();			//创造实例对象
			man.οnshοw=creatfunction(null,'add',3,5);//把事件处理流程给预留的抽象方法
			
			man.show();//8					//调用show从而触发onshow事件处理;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值