当前位置导航:炫浪网>>网络学院>>网页制作>>ASP.NET教程

剖析ASP.NET AJAX的面向对象思想

欢迎进入.NET社区论坛,与200万技术人员互动交流 >>进入

  人们期待已久的ASP.NET AJAX v1.0正式版终于发布了。现在你能用Microsoft ASP.NET AJAX的javascript很容易的写出丰富的、交互式的web应用。尤其值得关注的是Microsoft AJAX Library增加了面向对象的支持,而以前javascript是不支持面向对象开发的。现在icrosoft AJAX Library能很好的支持类、名字空间、继承、接口、枚举、反射等特征。这些新增加的功能类似于.NET Framework,这使得开发ASP.NET AJAX应用变得容易维护,容易扩充。现在我们看看Microsoft AJAX Library是如何支持以上特征的。
1.类、成员和名字空间
    在Microsoft AJAX Library中,所有的JavaScript类都继承自object(类似于.NET Framework库,都继承自object),在ASP.NET AJAX应用中你可以运用面向对象的编程模式创建继承自Microsoft AJAX基类的对象和组件,类有四种成员:字段、属性、方法、事件。字段和属性是名/值对,用于描述一个类的一个实例的特性的。字段是由简单类型构成且可直接访问,例如:
myClassInstance.name="Fred"。
    属性可以是任何简单类型或引用类型,通过get和set方法访问。在ASP.NET AJAX中,get和set是独立的函数,并规定在函数名中使用前缀"get_" 或 "set_" ,例如要获取或设置cancel属性的值时,你可以调用get_cancel或set_cancel方法。
    一个方法是完成一个活动的函数而不是返回一个属性的值。属性和方法在下面的例子里都有示范。
    事件指示特指的动作发生。当一个事件发生时,它可以调用一个或多个函数。事件所有者可以完成等待事件发生的任何任务。
    名字空间是对关联类的逻辑分组。名字空间使你可以对公共功能进行分组。
    为了使ASP.NET Web页面具有ASP.NET AJAX功能,你必须添加<asp:ScriptManager>控件到页面上,当页面启动时,参照ASP.NET AJAX库的脚本自动产生。
下面的例子显示了页面使用了<asp:ScriptManager>控件。
    <asp:ScriptManager runat="server" ID="scriptManager" />
    下面的例子演示了如何使用Type.registerNamespace和.registerClass方法来把Person类增加到Demo名字空间中、创建类然后注册类。
Type.registerNamespace("Demo");

Demo.Person = function(firstName, lastName, emailAddress) {
  this._firstName = firstName;
  this._lastName = lastName;
  this._emailAddress = emailAddress;
}

Demo.Person.prototype = {

  getFirstName: function() {
    return this._firstName;
  },

  getLastName: function() {
    return this._lastName;
  },

  getName: function() {
    return this._firstName + ' ' + this._lastName;
  },

  dispose: function() {
    alert('bye ' + this.getName());
  }
}
Demo.Person.registerClass('Demo.Person', null, Sys.IDisposable);

    在脚本文件Namespace.js中定义了类Person,制定了类的名字空间为"Demo"。运行页面Namespace.aspx,点击按钮将创建一个Demo.Person类的实例。

2.访问修饰
    许多面向对象编程语言都有访问修饰的概念。允许你指定类或成员在某种范围内有效。例如可在外部执行的程序、具有相同名字空间的内部类或特指的代码快内的类等。在JavaScript中没有访问修饰,但在ASP.NET AJAX中约定以下划线字符开头"_"的被认为是私有的,类的外部不能访问。

相关内容
赞助商链接