爱问知识人 爱问教育 医院库

一种JavaScript的设计模式

首页

一种JavaScript的设计模式


        

提交回答
好评回答
  • 2023-03-08 07:30:00
    一种JavaScript的设计模式
    //简单的类的设计模式
    //定义一个类class1
    functionclass1(){
    //构造函数
    }

    //通过指定prototype对象来实现类的成员定义
    class1.prototype={
    someProperty:"simple",
    someMethod:function{
    //方法代码
    },
    //其实属性和方法
    }在一个类的成员之间互相引用,必须通过this指针来进行。因为在JavaScript中第个属性和方法都是独立的,它们通过this指针联系在一个对象上。

    //简单的带参数的事件设计模式
    <scriptlanguage="JavaScript"type="text/javascript">
    <--
    //将有参数的函数封装为无参数的函数
    functioncreateFunction(obj,strFunc){
    varargs=[];//定义args用于存储传递给事件处理程序的参数
    if(!obj)obj=window;//如果是全局函数则obj=window;
    //得到传递给事件处理程序的参数
    for(vari=2;i<arguments.length;i++){
    args.push(arguments[i]);
    }
    //用无参数函数封装事件处理程序的调用
    returnfunction(){
    obj[strFunc].apply(obj,args);//将参数传递给指定的事件处理程序
    }
    }

    //定义类class1
    functionclass1(){
    //构造函数
    }
    class.prototype={
    show:function(){
    //show函数的实现
    this.onshow();//触发onshow事件
    },
    onShow:function(){}//定义事件接口
    }
    //创建class1的实例
    varobj=newclass1();
    //创建obj的onshow事件处理程序
    functionobjOnshow(userName){
    alert("hello,"+userName);
    }
    //定义变量userName
    varuserName="terry";
    //绑定obj的onShow事件
    obj.onShow=createFunction(null,"objOnshow",userName);
    //调用obj的show方法
    obj.show();
    //-->
    </script>
    通过createFunction封装,就可以用一种通用的方案实现参数传递。
    //一个简单的开发框架
    <scriptlanguage="javascript">
    varhttp_request=false;
    functionsend_request(url){//初始化、指定处理函数、发送请求的函数
    http_request=false;
    //开始初始化XMLHttpRequest对象
    if(window.XMLHttpRequest){//Mozilla浏览器
    http_request=newXMLHttpRequest();
    if(http_request.overrideMimeType){//设置MiME类别
    http_request.overrideMimeType("text/xml");
    }
    }
    elseif(window.ActiveXObject){//IE浏览器
    try{
    http_request=newActiveXObject("Msxml2.XMLHTTP");
    }catch(e){
    try{
    http_request=newActiveXObject("Microsoft.XMLHTTP");
    }catch(e){}
    }
    }
    if(!http_request){//异常,创建对象实例失败
    window.alert("不能创建XMLHttpRequest对象实例.");
    returnfalse;
    }
    http_request.onreadystatechange=processRequest;
    //确定发送请求的方式和URL以及是否同步执行下段代码
    http_request.open("GET",url,true);
    http_request.send(null);
    }
    //处理返回信息的函数
    functionprocessRequest(){
    if(http_request.readyState==4){//判断对象状态
    if(http_request.status==200){//信息已经成功返回,开始处理信息
    alert(http_request.responseText);
    }else{//页面不正常
    alert("您所请求的页面有异常。");
    }
    }
    }
    </script>

    泛***

    2023-03-08 07:30:00

类似问题

换一换
  • 电脑/网络 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新资料 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):