Ajax基础教程(5)- 5.7 实现高级JavaScript技术

豆豆网   技术应用频道   2007年11月21日  【字号: 收藏本文

本文详细介绍Ajax基础教程(5)- 5.7 实现高级JavaScript技术

  这种动态性与基于类的继承机制中的多态概念异曲同工。两个对象可以有相同的属性和函数,但是函数方法(实现)可以完全不同,而且属性可以支持完全不同的数据类型。这种多态性使得JavaScript对象能够由其他脚本和函数以统一的方式处理。

  图5-15显示了实际的prototype继承机制。这个脚本定义了3类对象:Vehicle、Sports-

  Car和CementTruck。Vehicle是基类,另外两个类由此继承。Vehicle定义了两个属性:wheelCount和curbWeightInPounds,分别表示Vehicle的车轮数和总重量。JavaScript不支持抽象类的概念(抽象类不能实例化,只能由其他类扩展),因此,对于Vehicle基类,wheelCount默认为4,curbWeightInPounds默认为3 000。

Ajax基础教程(5)- 5.7 实现高级JavaScript技术

  图5-15 Vehicle、SportsCar和CementTruck对象之间的关系

  注意,这个UML图展示了SportsCar和CementTruck对象覆盖了Vehicle的refuel和mainTasks函数,因为一般的Vehicle、SportsCar(赛车)和CementTruck(水泥车)会以不同的方式完成这些任务。SportsCar与Vehicle的车轮数相同,所以SportsCar的wheelCount属性不会覆盖Vehicle的wheelCount属性。CementTruck的车轮数和重量都超过了Vehicle,所以CementTruck的wheelCount和curbWeightInPounds属性要覆盖Vehicle的相应属性。

  代码清单5-2包含了定义这3个类的JavaScript代码。要特别注意如何在对象定义中对属性和函数附加prototype关键字,还要注意每个对象由一个构造函数定义,构造函数与对象类型同名。

  代码清单5-2 inheritanceViaPrototype.js

来源:CSDN    责编:豆豆技术应用

正在加载评论...