Ajax系列之二——面向对象

     在上一篇博客中,对Ajax的机理以及应用做了简要的概述,这篇博客开始从代码中学习Ajax语法,并逐渐体会Ajax的精妙之处。

 

    简单地说Ajax是javascript和xml两大核心技术的综合运用,他们都是基于面向对象的开发。所以,面向对象是Ajax的基础,但是每一种语言具体面向对象的语法又不尽相同,那么针对Ajax的语法学习就从面向对象的基础做起吧。

 

    下面的实例通过Ajax在界面端创建一个Person类和Employee类。Person类中封装firstName和lastName两个属性,Employee类继承Person类,并添加title属性;Person类重写toString方法,该方法将firstName和lastName通过alert的方法显示出来,Employee类重写Person的toString方法,将firstName、lastName和title都显示出来。

 

    运行效果见下图:

   

     有了整体的设计目标,就开始实际的代码编写。

    1、界面设计

    添加一个普通的web页面,然后从工具箱中拖出一个ScriptManager

    

    一个页面中只能有一个ScriptManager,它的作用是统一调配Ajax方法?

    2、编写Ajax代码

    因为是javascript代码,所以,代码要放到下面的框架中。   

     <script language="javascript" type="text/javascript">
         //注册命名空间,这里的命名空间最好是你的应用程序名,也可不是
         Type.registerNamespace("AspNetAjaxOverView");
         ……
      </script>


   使用面向对象的思想编写Person类,并为该类封装firstName和lastName两个属性和toString方法。  

        //声明一个Person类
         AspNetAjaxOverView.Person = function (firstName, lastName) {
             this._firstName = firstName;
             this._lastName = lastName;
         }
         //Person类的属性,并重写toString方法。属性字段以及方法间用逗号隔开
         AspNetAjaxOverView.Person.prototype =
		{
		    get_firstName: function () {
		        return this._firstName;
		    },
		    get_lastName: function () {
		        return this._lastName;
		    },
		    //重写toString方法
		    toString: function () {
		        return String.format("Hello, I'm {0} {1}.",
					this.get_firstName(),
					this.get_lastName());
		    }
		}
         //注册Person类到命名空间
         AspNetAjaxOverView.Person.registerClass("AspNetAjaxOverView.Person");


    这里需要注意:

    1.首先要显示的注册一个命名空间。

        因为自定义的Person类缺少默认的命名空间,这里不同于一般的使用C#声明一个类的方法。

    2.声明好的Person类,仍需要显示的注册到相应的命名空间AspNetAjaxOverView下。

        这里的命名空间可以是你的应用程序名,也可不是。

    3.具有和javascript相同的声明属性和方法的语法。

        属性和方法之间使用逗号“,”隔开。

 

    编写Employee类,继承Person类:  

         //声明Employee类,继承Person类
         AspNetAjaxOverView.Employee = function (firstName, lastName, title) {
             //继承的语法initializeBase(初始化基础),类似C++,只续写新添加的字段
             AspNetAjaxOverView.Employee.initializeBase(this, [firstName, lastName]);

             this._title = title;
         }
         //属性的继承,只续写新增属性字段
         //Employee类继承了Person类的属性,只续写title属性
         AspNetAjaxOverView.Employee.prototype =
		{
		    get_title: function () {
		        return this._title;
		    },
		    //方法的继承,callBaseMethod实现
		    //继承父类Person的toString方法,只续写title字串
		    toString: function () {
		        return AspNetAjaxOverView.Employee.callBaseMethod(this, "toString") +
					" My title is '" + this.get_title() + "'.";
		    }
		}
         //注册Employee类,并指明该类继承自Person类
         AspNetAjaxOverView.Employee.registerClass("AspNetAjaxOverView.Employee", AspNetAjaxOverView.Person);

    面向对象的继承总结:

    1.属性和方法的继承只续写新增属性字段。类似C++的语法。

    2.子类在注册到命名空间的时候还需要指明继承的父类。

    3.方法的继承使用callBaseMethod

    4.属性的继承使用prototype

 

   通过添加按钮的单击事件调用ajax的方法,显示相应的职位和名称。

    <%--通过按钮调用ajax的方法--%>
    <input type="button" value="Li Limin"
		οnclick="alert(new AspNetAjaxOverView.Employee('Li', 'Limin', '董事长'));" />
    <input type="button" value="Bill Gates"
		οnclick="alert(new AspNetAjaxOverView.Employee('Bill', 'Gates', '总经理'));" />

    到此为止,所有的代码就都完成了。我们可以总结出,这里的Ajax技术采用javascript的脚本语言,采用面向对象的思想,实现:单击窗体上的按钮,通过alert方法,调用自定义的函数,动态添加函数的参数,从而达到动态显示相关的信息的效果。

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 20
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值