人们期待已久的ASPNET AJAX v正式版终于发布了现在你能用Microsoft ASPNET AJAX的javascript很容易的写出丰富的交互式的web应用尤其值得关注的是Microsoft AJAX Library增加了面向对象的支持而以前javascript是不支持面向对象开发的现在icrosoft AJAX Library能很好的支持类名字空间继承接口枚举反射等特征这些新增加的功能类似于NET Framework这使得开发ASPNET AJAX应用变得容易维护容易扩充现在我们看看Microsoft AJAX Library是如何支持以上特征的
类成员和名字空间
在Microsoft AJAX Library中所有的JavaScript类都继承自object(类似于NET Framework库都继承自object)在ASPNET AJAX应用中你可以运用面向对象的编程模式创建继承自Microsoft AJAX基类的对象和组件类有四种成员字段属性方法事件字段和属性是名/值对用于描述一个类的一个实例的特性的字段是由简单类型构成且可直接访问例如myClassInstancename=Fred
属性可以是任何简单类型或引用类型通过get和set方法访问在ASPNET AJAX中get和set是独立的函数并规定在函数名中使用前缀get_ 或 set_ 例如要获取或设置cancel属性的值时你可以调用get_cancel或set_cancel方法
一个方法是完成一个活动的函数而不是返回一个属性的值属性和方法在下面的例子里都有示范
事件指示特指的动作发生当一个事件发生时它可以调用一个或多个函数事件所有者可以完成等待事件发生的任何任务
名字空间是对关联类的逻辑分组名字空间使你可以对公共功能进行分组
为了使ASPNET Web页面具有ASPNET AJAX功能你必须添加<asp:ScriptManager>控件到页面上当页面启动时参照ASPNET AJAX库的脚本自动产生
下面的例子显示了页面使用了<asp:ScriptManager>控件
<asp:ScriptManager runat=
server
ID=
scriptManager
/>
下面的例子演示了如何使用TyperegisterNamespace和registerClass方法来把Person类增加到Demo名字空间中创建类然后注册类
TyperegisterNamespace(Demo);
DemoPerson = function(firstName lastName emailAddress) {
this_firstName = firstName;
this_lastName = lastName;
this_emailAddress = emailAddress;
}
DemoPersonprototype = {
getFirstName: function() {
return this_firstName;
}
getLastName: function() {
return this_lastName;
}
getName: function() {
return this_firstName + + this_lastName;
}
dispose: function() {
alert(bye + thisgetName());
}
}
DemoPersonregisterClass(DemoPerson null SysIDisposable);
在脚本文件Namespacejs中定义了类Person制定了类的名字空间为Demo运行页面Namespaceaspx点击按钮将创建一个DemoPerson类的实例
访问修饰
许多面向对象编程语言都有访问修饰的概念允许你指定类或成员在某种范围内有效例如可在外部执行的程序具有相同名字空间的内部类或特指的代码快内的类等在JavaScript中没有访问修饰但在ASPNET AJAX中约定以下划线字符开头_的被认为是私有的类的外部不能访问
[] [] []