网络编程
位置:首页>> 网络编程>> JavaScript>> 现代 javscript 编程(2)

现代 javscript 编程(2)

作者:moart0 来源:蓝色经典 发布时间:2011-04-21 16:24:00 

标签:javscript,编程

面向对象的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代码片段。

0
投稿

猜你喜欢

  • 用途:图片经常使用onload来改变宽度,但这样会出现图片的闪烁,这个简单的类就是用来解决这个问题的。函数loadImage,用来加载图片,
  • 内容摘要:在网页制作中,有许多的术语,例如:CSS、HTML、DHTML、XHTML等等。在下面的文章中我们将会用到一些有关于HTML的基本
  • 保持良好的代码风格是每个Coder必学的课程,同样在HTML设计的时候也要特别注意代码的规范性,虽然说不规范的代码不会直接造成严重的后果,但
  •  编写思路:把本地文件在客户端通过base64编码以后发送目的地.测试过程中,上传文件过大,导致超时不成功,后来经过改善.把编码分
  • 1.由于设置了slave的配置信息,mysql在数据库data目录下生成master.info,所以如有要修改相关slave的配置要先删除该
  • 每次在操作数据库的时候最烦的就是根据表单提交的内容写sql语句,特别是字段比较多的时候很麻烦,动不动就容易写错。所以我就写了下面的生成sql
  • 我们知道,全局临时表的生命周期一直持续到创建会话(不是创建级别)才终止。有时候,你可能想创建一个不属于任何会话的全局临时表。而无论你进行什么
  • 四、XML应用分类 总的说来的XML的应用可分为四类: (1)应用于客户需要与不同的数据源进行交互时。数据可能来自不同的数据库,他们都有各自
  • 在SQL Server开发问题中你可能会问到的十个问题:1、什么是常见的对表和字段的名字约束?2、有没有可能在不了解T-SQL的情况下编写存
  • JS提供两个截取字符串的方法,分别是:slice()和substring()slice和substring都可以接受一个或两个参数,第1个参
  •  <% '****************************** '函数:Chec
  • css可以处理16,777,216颜色,可以使用名字、rgb值或十六进制代码。red红色等同于 rgb(255,0,0) &nbs
  • 在SQL Server中,为了查询性能的优化,有时我们就需要对数据表通过建立索引的方式,目的主要是根据查询要求,迅速缩小查询范围,避免全表扫
  • 如何侦测HTTP表头信息?可用下列办法侦测并显示所有的HTTP HEADERS:<HTML><HEAD><TI
  • 搞前端应该对语义化并不陌生,每天都在说语义化,可什么是语义化,语义化究竟能给我们带来什么好处?参加web标准交流会的时候我向各位同学提出了我
  •   先废话几句,这第23篇教程一直没有翻译出来,直到今天我看到待审评论里面有这么一条超长的评论,结果一看,居然是这篇教程的翻译稿。
  • 我们来编写一个,引用时用:<!--#include Virtual="page.inc"-->语句即可:pa
  • 如何用METADATA替换ADOVBS.INC?     在ASP中,使用组件时,如ADO,得先包含
  • 一提起Google的产品,大多数人可能都会想到用一个词来形容,“简洁”。简单得来又实用,这就是Google的产品设计方针了。Jon Wile
  • 像素误差看自己设计好上线的网站,偶尔会发觉像素行间出现了弹性空间,总在不经意间蹦出一定的差距。有些页面很难发现,比如活动类页面,这类页面多呈
手机版 网络编程 asp之家 www.aspxhome.com