|
//简单的类的设计模式 //定义一个类class1 function class1() { //构造函数 }
//通过指定prototype对象来实现类的成员定义 class1.prototype = { someProperty:"simple", someMethod:function { //方法代码 }, //其实属性和方法 }在一个类的成员之间互相引用,必须通过this指针来进行。因为在javascript中第个属性和方法都是独立的,它们通过this指针联系在一个对象上。
//简单的带参数的事件设计模式 <script language="JavaScript" type="text/javascript"> <!-- //将有参数的函数封装为无参数的函数 function createFunction(obj, strFunc) { var args = [];//定义args用于存储传递给事件处理程序的参数 if(!obj) obj = window;//如果是全局函数则obj=window; //得到传递给事件处理程序的参数 for(var i=2; i<arguments.length; i++) { args.push(arguments[i]); } //用无参数函数封装事件处理程序的调用 return function() { obj[strFunc].apply(obj, args);//将参数传递给指定的事件处理程序 } }
//定义类class1 function class1() { //构造函数 } class.prototype = { show:function() { //show函数的实现 this.onshow();//触发onshow事件 }, onShow:function() {}//定义事件接口 } //创建class1的实例 var obj = new class1(); //创建obj的onshow事件处理程序 function objOnshow(userName) { alert("hello,"+userName); } //定义变量userName var userName = "terry"; //绑定obj的onShow事件 obj.onShow=createFunction(null, "objOnshow", userName); //调用obj的show方法 obj.show(); //--> </script> 通过createFunction封装,就可以用一种通用的方案实现参数传递。 //一个简单的开发框架 <script language="javascript"> var http_request = false; function send_request(url) {//初始化、指定处理函数、发送请求的函数 http_request = false;
[1] [2] [3] 下一页 |