英文链接: http://atlas.asp.net/docs/atlas/doc/javascript/default.aspx

按我的理解,面向对象基本的特性无非六个字:封装、继承和多态。研究了Atlas的文档之后,发现它的Javascript脚本库把这几个特性都实现了。Ok, Let go......

先看看封装

Atlas提供了命名空间Namespace的功能来隔离命名冲突,而且在类中可以定义私有变量,达到的封装的目的。可惜的是类的方法好像只能是公共的。

以下是示例代码(所有的示例代码来自于原文链接)

Atlas与面向对象的JavascriptType.registerNamespace("Demo");
Atlas与面向对象的Javascript
, Sys.IDisposable);

定义了以上的Demo.Person类之后,就可以在页面中的Javascript代码中按OO的方法使用了。

Atlas与面向对象的Javascript        var testPerson = new Demo.Person('John', 'Smith', 'john.smith@example.com');
Atlas与面向对象的Javascript        alert(testPerson.getFirstName() 
+ " " + testPerson.getLastName() );
Atlas与面向对象的Javascript

然后来看看继承

简单地说,就是用prototype定义虚函数。使用registerCalss定义基类,构造函数调用initializeBase

最后,我们来看看多态

其实上面的代码toString函数已经实现了继承的多态。我们再来看看接口实现的多态:

Atlas与面向对象的JavascriptType.registerNamespace("Demo.Animals");
Atlas与面向对象的Javascript
}

首先,用registerInterface定义一个接口

然后,在registerClass的时候,第三个参数指定类实现了哪个接口

Atlas还支持抽象类的定义(registerAbstractClass)

确实算是比较完备了。

看到这里,还是比较兴奋。Javascript终于也可以以OOP的方式来编写了,其扩展的潜力不可低估啊。






 

相关文章: