现代 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实现js动画性能好

    requestAnimationFrame优于setTimeout/setInterval的地方在于它是由浏览器专门为动画提供的API,在运行时浏览器会自动优化方法的调用,并且如果页面不是激活状态下的话,动画会自动暂停,有效节省了CPU开销,这篇文章给大家详细介绍使用requestAnimationFrame实现js动画
    2015-08-08
  • 微信小程序中插入激励视频广告并获取收益(实例代码)

    微信小程序中插入激励视频广告并获取收益(实例代码)

    这篇文章主要介绍了微信小程序中插入激励视频广告并获取收益,通过代码给大家介绍了如何插入及注意事项,需要的朋友可以参考下
    2019-12-12
  • javascript实现的textarea运行框效果代码 不用指定id批量指定

    javascript实现的textarea运行框效果代码 不用指定id批量指定

    今天在写一个网页的时候用到了N多嵌套在textarea标签里的代码,定义双击运行其内的代码段。但是每次创建一个这样的可运行的实例都要给textarea元素自定义一个id值和写入双击事件,好不麻烦。
    2009-12-12
  • JavaScript 继承详解(五)

    JavaScript 继承详解(五)

    在本章中,我们将分析John Resig关于JavaScript继承的一个实现 - Simple JavaScript Inheritance,需要的朋友可以参考下
    2016-10-10
  • js中的document.querySelector()方法举例详解

    js中的document.querySelector()方法举例详解

    这篇文章主要给大家介绍了关于js中document.querySelector()方法的相关资料,document.querySelector是JavaScript中的一个内置方法,用于通过CSS选择器选择文档中的第一个匹配元素,需要的朋友可以参考下
    2024-01-01
  • webpack多入口文件页面打包配置详解

    webpack多入口文件页面打包配置详解

    本篇文章主要介绍了webpack多入口文件页面打包配置详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • js option删除代码集合

    js option删除代码集合

    javascript删除option选项的多种方法,方便大家选用。
    2008-11-11
  • Echarts.js实现水滴球和海洋效果

    Echarts.js实现水滴球和海洋效果

    这篇文章介绍了Echarts.js实现水滴球和海洋效果的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • js jquery 获取某一元素到浏览器顶端的距离实现方法

    js jquery 获取某一元素到浏览器顶端的距离实现方法

    今天小编就为大家分享一篇js jquery 获取某一元素到浏览器顶端的距离实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • 25个让你眼前一亮的JavaScript代码技巧分享

    25个让你眼前一亮的JavaScript代码技巧分享

    学习强大的JavaScript一行代码,能够节省你的时间和代码量,所以本文为大家整理了25个JavaScript实用代码技巧,感兴趣的小伙伴可以了解一下
    2023-07-07

最新评论