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

来源:互联网 发布:联想电脑桌面必备软件 编辑:程序博客网 时间:2024/06/18 14:14
function creatfunction(obj,skill){//这里写一个将处理事件流程的函数转化为无参数函数的函数(其实就是在它外层包一个无参数函数)if(!obj){obj=window;}//如果没传入哪个对象的参数 让他默认指向windowvar 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.onshow=creatfunction(null,'add',3,5);//把事件处理流程给预留的抽象方法man.show();//8//调用show从而触发onshow事件处理;

原创粉丝点击