現(xiàn)代 javscript 編程 資料第2/6頁
更新時間:2007年04月09日 00:00:00 作者:
面向對象的JavaScript
從語言的視角來看,面向對象的程序設計和面向對象的JavaScript語言絕對不是什么摩登的東西;JavaScript最開始就是被設計成一種徹底的面向對象語言。然而,隨著JavaScript在其使用和接受的過程中的“逐步發(fā)展”,其它語言(如Ruby,Python,和Perl等)的程序員留意到了它并開始將他們的編程模式引入了JavaScript。
面向對象的JavaScript代碼的外觀和內部運作都有別于其它具有對象能力的語言。在第二章我將深入論述使它如此獨特的方方面面,而在這里,先來看一點基礎的東西以體會編寫現(xiàn)代JavaScript代碼的初步感覺。程序1-1中的兩個對象構造器的例子,演示了可用于學校課程的簡單的對象搭配。
程序1-1. 課程和課程表的面向對象JavaScript表述
//類Lecture的構造器
//使用兩個字符串參數(shù),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類型的數(shù)組作為參數(shù)
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的代碼中你或許已經看出,大部分的面向對象基本原則貫穿存在于其中,但它們是以不同于其它更常見的面向對象語言的方式組織起來的。你可以創(chuàng)建對象構造器和方法,并存取對象屬性。程序1-2展示了在應用程序中使用上面兩個類的一個示例。
程序1-2. 給用戶提供課程的列表
//創(chuàng)建一個新的課表對象,存于變量mySchedule中
var mySchedule = new Schedule([
//創(chuàng)建一個課程對象的數(shù)組,
//作為傳給課表(原文此處為Lecture,疑為筆誤)對象的唯一參數(shù)
new Lecture( "Gym", "Mr. Smith" ),
new Lecture( "Math", "Mrs. Jones" ),
new Lecture( "English", "TBD" )
]);
// 彈出對話框顯示課表的信息
alert( mySchedule.display() );
伴隨對廣大程序員對JavaScript的接受,設計良好的面向對象代碼的使用也正日益普及。貫穿本書的始末,我將試圖展示我認為能夠最好地例示代碼設計與實現(xiàn)的不同的面向對象的JavaScript代碼片段。
相關文章
Ajax異步文件上傳與NodeJS express服務端處理
本文主要介紹了Ajax異步文件上傳與NodeJS express服務端處理的相關知識。具有很好的參考價值。下面跟著小編一起來看下吧2017-04-04
JS實現(xiàn)移動端可折疊導航菜單(現(xiàn)代都市風)
這篇文章主要介紹了JS如何實現(xiàn)移動端可折疊導航菜單,文中示例代碼非常詳細,幫助大家更好的理解和學習,感興趣的朋友可以了解下2020-07-07
詳解將微信小程序接口Promise化并使用async函數(shù)
這篇文章主要介紹了詳解將微信小程序接口Promise化并使用async函數(shù),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-08-08
RGB顏色值轉HTML十六進制(HEX)代碼的JS函數(shù)
轉到固定長度的十六進制字符串,不夠則補0 javascript找出一個背景色的數(shù)值,只好自己解析2009-04-04

