预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

面向对象的JavaScript编程 Javascript对于做过Web程序的人不应该是陌生,初期是用来做一些简单的FORM验证,基本上是在玩弄一些技巧性的东西。IE4.0引入了DHTML,同时为了对抗Netscape的Javascript,提出了自己的脚本语言JScript,除了遵循EMAC的标准之外,同时增加了许多扩展,如下要提到的OOP编程就是其中的一个,为了命且概念,我以下提到的Javascript都是MicrosoftInternetExplorer4.0以上实现的JScript,对于Netscape,我没有做过太多的程序,所以一些的区别也就看出来。 Javascript不是一个支持面向对象的语言,更加算不上一个开发平台,但是Javascript提供了一个非常强大的基于prototype的面向对象调用功能,你可以在你自己需要的地方使用他们。因此,如何使用对象?本文尽可能从Javascript面向对象实现原理出发,解析清楚它的工作模型。在了解这些模型之后,你可以在自己的脚本库中编写一些实现代码,然后在其他地方调用。 Javascript的语法和C++很接近,不过在类实现中没有使用关键字Class,实现继承的时候也没有采用传统的Public或者Implement等等所谓的关键字来标示类的实现。这样的情况下,可能有就有人会问,如何编写Javascript的Class,如何实现继承。我开始也是百思不得其解,后来看了MSDN,才知道采用了prototype来实现,包括继承和重载,也可以通过这个关键字来实现。 Javascript的函数很奇怪,每个都是默认实现了Optional的,即参数都可以可选的,functiona(var1,var2,var3),在调用的过程中a(),a(value1),a(value1,value2)等等的调用都是正确的,至少在即使编译部分可以完整通过,至于其它,只是和函数的实现逻辑比较相关了。 以下就JS对于类的实现、继承、重载详细介绍其实现方式。 1。实现 Js类的实现就通过函数直接实现的,每个函数可以直接看成class,如下代码 functionClassTest1(){ ...//implementcode } vara=newClassTest1 functionClassTest2(var1){ ...//implementcode } varb=newClassTest("value") 对于类的属性,可以通过两种方式实现 1)this."<PropertyorMethod"的方式实现,在类声明函数中直接给出函数的实现,如this.Add=newfunction(strUserName,strPassword)这样的方式调用,编写的方式在ClassFunction中调用。 2)通过ClassFunction.prototype.[FunctionName]=function(var1,var2...){//todo}这样的方式完成调用。 这两种方式从目标来看是一致的,按照我个人的观点来看,区别的只是在于实现方式,通过this.propertyName的方式来创建,Jscript自动创建了property或者method的入口,不过从程序的角度而言,还是使用prototype的关键字实现比较灵活。 另外Javascript也可以和我们C++中那种嵌套声明的方法来声明,C++实现的方法如下 PublicClassClassName:ParentClass{ PublicDataTypeFunctionName(){ } PublicClassClassName{ PublicDataTypeFunctionName(){ } } } 在Javascript当中,当然不存在class这样的关键字了,所以实现起来有点戏剧性,不过仍然为一个非常巧妙的实现。 functionclassName(){ //PropertyImplement this.UserName="blue"; //MethodImplement this.Add=newfunction(){ } //SubClassImplement functionSubClassName(){ this.PropertyName="hi" } //subclassmethodimplement SubClassName.prototype.Change=function{ } } //MainClassMethodImplement className.prototype.Delete=function(){ } 如上的代码大致演示了Javascript类中属性和方法的实现,另外有一点比较困惑,整个class中都是public的