- 在线时间
- 1008 小时
- 专家
- 0
- UID
- 53567
- 注册时间
- 2003-6-18
- 帖子
- 2382
- 精华
- 3
- 积分
- 14317
- 离线
- 29 天
- 帖子
- 2382
- 体力
- 13417
- 威望
- 180
|
面向对象的JavaScript
从语言的视角来看,面向对象的程序设计和面向对象的JavaScript语言绝对不是什么摩登的东西;JavaScript最开始就是被设计成一种彻底的面向对象语言。然而,随着JavaScript在其使用和接受的过程中的“逐步发展”,其它语言(如Ruby,Python,和Perl等)的程序员留意到了它并开始将他们的编程模式引入了JavaScript。
面向对象的JavaScript代码的外观和内部运作都有别于其它具有对象能力的语言。在第二章我将深入论述使它如此独特的方方面面,而在这里,先来看一点基础的东西以体会编写现代JavaScript代码的初步感觉。程序1-1中的两个对象构造器的例子,演示了可用于学校课程的简单的对象搭配。
程序1-1. 课程和课程表的面向对象JavaScript表述- //类Lecture的构造器
- //使用两个字符串参数,name和teacher
- function Lecture( name, teacher ) {
- //把它们作为对象的本地属性保存
- this.name = name;
- this.teacher = teacher;
- }
- //类Lecture的方法,生成一个显示该课程信息的字符串
- Lecture.prototype.display = function(){
- return this.teacher + " is teaching " + this.name;
- };
- //类Schedule的构造器
- //使用一个lectures类型的数组作为参数
- function Schedule( lectures ) {
- this.lectures = lectures;
- }
- //类Schedule的方法,用来构造一个描述该课程表的字符串
- Schedule.prototype.display = function(){
- var str = "";
- //遍历每门课程,累加构成信息字符串
- for ( var i = 0; i < this.lectures.length; i++ )
- str += this.lectures[i].display() + " ";
- return str;
- };
复制代码 从程序1-1的代码中你或许已经看出,大部分的面向对象基本原则贯穿存在于其中,但它们是以不同于其它更常见的面向对象语言的方式组织起来的。你可以创建对象构造器和方法,并存取对象属性。程序1-2展示了在应用程序中使用上面两个类的一个示例。
程序1-2. 给用户提供课程的列表- //创建一个新的课表对象,存于变量mySchedule中
- var mySchedule = new Schedule([
- //创建一个课程对象的数组,
- //作为传给课表(原文此处为Lecture,疑为笔误)对象的唯一参数
- new Lecture( "Gym", "Mr. Smith" ),
- new Lecture( "Math", "Mrs. Jones" ),
- new Lecture( "English", "TBD" )
- ]);
- // 弹出对话框显示课表的信息
- alert( mySchedule.display() );
复制代码 伴随对广大程序员对JavaScript的接受,设计良好的面向对象代码的使用也正日益普及。贯穿本书的始末,我将试图展示我认为能够最好地例示代码设计与实现的不同的面向对象的JavaScript代码片段。
[ 本帖最后由 mozart0 于 2007-4-6 17:14 编辑 ] |
|