现代 javscript 编程 资料第2/6页
更新时间:2007年04月09日 00:00:00 作者:
面向对象的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代码片段。
相关文章
使用requestAnimationFrame实现js动画性能好
requestAnimationFrame优于setTimeout/setInterval的地方在于它是由浏览器专门为动画提供的API,在运行时浏览器会自动优化方法的调用,并且如果页面不是激活状态下的话,动画会自动暂停,有效节省了CPU开销,这篇文章给大家详细介绍使用requestAnimationFrame实现js动画2015-08-08javascript实现的textarea运行框效果代码 不用指定id批量指定
今天在写一个网页的时候用到了N多嵌套在textarea标签里的代码,定义双击运行其内的代码段。但是每次创建一个这样的可运行的实例都要给textarea元素自定义一个id值和写入双击事件,好不麻烦。2009-12-12js中的document.querySelector()方法举例详解
这篇文章主要给大家介绍了关于js中document.querySelector()方法的相关资料,document.querySelector是JavaScript中的一个内置方法,用于通过CSS选择器选择文档中的第一个匹配元素,需要的朋友可以参考下2024-01-01
最新评论