現(xiàn)代 javscript 編程 資料第2/6頁(yè)
面向?qū)ο蟮腏avaScript
從語(yǔ)言的視角來看,面向?qū)ο蟮某绦蛟O(shè)計(jì)和面向?qū)ο蟮腏avaScript語(yǔ)言絕對(duì)不是什么摩登的東西;JavaScript最開始就是被設(shè)計(jì)成一種徹底的面向?qū)ο笳Z(yǔ)言。然而,隨著JavaScript在其使用和接受的過程中的“逐步發(fā)展”,其它語(yǔ)言(如Ruby,Python,和Perl等)的程序員留意到了它并開始將他們的編程模式引入了JavaScript。
面向?qū)ο蟮腏avaScript代碼的外觀和內(nèi)部運(yùn)作都有別于其它具有對(duì)象能力的語(yǔ)言。在第二章我將深入論述使它如此獨(dú)特的方方面面,而在這里,先來看一點(diǎn)基礎(chǔ)的東西以體會(huì)編寫現(xiàn)代JavaScript代碼的初步感覺。程序1-1中的兩個(gè)對(duì)象構(gòu)造器的例子,演示了可用于學(xué)校課程的簡(jiǎn)單的對(duì)象搭配。
程序1-1. 課程和課程表的面向?qū)ο驤avaScript表述
//類Lecture的構(gòu)造器
//使用兩個(gè)字符串參數(shù),name和teacher
function Lecture( name, teacher ) {
//把它們作為對(duì)象的本地屬性保存
this.name = name;
this.teacher = teacher;
}
//類Lecture的方法,生成一個(gè)顯示該課程信息的字符串
Lecture.prototype.display = function(){
return this.teacher + " is teaching " + this.name;
};
//類Schedule的構(gòu)造器
//使用一個(gè)lectures類型的數(shù)組作為參數(shù)
function Schedule( lectures ) {
this.lectures = lectures;
}
//類Schedule的方法,用來構(gòu)造一個(gè)描述該課程表的字符串
Schedule.prototype.display = function(){
var str = "";
//遍歷每門課程,累加構(gòu)成信息字符串
for ( var i = 0; i < this.lectures.length; i++ )
str += this.lectures[i].display() + " ";
return str;
};
從程序1-1的代碼中你或許已經(jīng)看出,大部分的面向?qū)ο蠡驹瓌t貫穿存在于其中,但它們是以不同于其它更常見的面向?qū)ο笳Z(yǔ)言的方式組織起來的。你可以創(chuàng)建對(duì)象構(gòu)造器和方法,并存取對(duì)象屬性。程序1-2展示了在應(yīng)用程序中使用上面兩個(gè)類的一個(gè)示例。
程序1-2. 給用戶提供課程的列表
//創(chuàng)建一個(gè)新的課表對(duì)象,存于變量mySchedule中
var mySchedule = new Schedule([
//創(chuàng)建一個(gè)課程對(duì)象的數(shù)組,
//作為傳給課表(原文此處為L(zhǎng)ecture,疑為筆誤)對(duì)象的唯一參數(shù)
new Lecture( "Gym", "Mr. Smith" ),
new Lecture( "Math", "Mrs. Jones" ),
new Lecture( "English", "TBD" )
]);
// 彈出對(duì)話框顯示課表的信息
alert( mySchedule.display() );
伴隨對(duì)廣大程序員對(duì)JavaScript的接受,設(shè)計(jì)良好的面向?qū)ο蟠a的使用也正日益普及。貫穿本書的始末,我將試圖展示我認(rèn)為能夠最好地例示代碼設(shè)計(jì)與實(shí)現(xiàn)的不同的面向?qū)ο蟮腏avaScript代碼片段。
相關(guān)文章
詳解基于webpack2.x的vue2.x的多頁(yè)面站點(diǎn)
本篇文章主要主要介紹了基于webpack2.x的vue2.x的多頁(yè)面站點(diǎn) ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-08-08
Ajax異步文件上傳與NodeJS express服務(wù)端處理
本文主要介紹了Ajax異步文件上傳與NodeJS express服務(wù)端處理的相關(guān)知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來看下吧2017-04-04
JS實(shí)現(xiàn)移動(dòng)端可折疊導(dǎo)航菜單(現(xiàn)代都市風(fēng))
這篇文章主要介紹了JS如何實(shí)現(xiàn)移動(dòng)端可折疊導(dǎo)航菜單,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07
html的DOM中Event對(duì)象onabort事件用法實(shí)例
這篇文章主要介紹了html的DOM中Event對(duì)象onabort事件用法,實(shí)例分析了onabort事件的適用范圍與對(duì)應(yīng)的javascript使用技巧,需要的朋友可以參考下2015-01-01
很不錯(cuò)的兩款Bootstrap Icon圖標(biāo)選擇組件
這篇文章主要介紹了不容錯(cuò)過的兩款Bootstrap Icon圖標(biāo)選擇組件,支持自定義的圖標(biāo),拿出來分享下,絕對(duì)的干貨,感興趣的小伙伴們可以參考一下2016-01-01
詳解將微信小程序接口Promise化并使用async函數(shù)
這篇文章主要介紹了詳解將微信小程序接口Promise化并使用async函數(shù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
RGB顏色值轉(zhuǎn)HTML十六進(jìn)制(HEX)代碼的JS函數(shù)
轉(zhuǎn)到固定長(zhǎng)度的十六進(jìn)制字符串,不夠則補(bǔ)0 javascript找出一個(gè)背景色的數(shù)值,只好自己解析2009-04-04
js列舉css中所有圖標(biāo)的實(shí)現(xiàn)代碼
最近在做一個(gè)通用的配置模塊。配置模塊中必然要對(duì)系統(tǒng)的菜單、功能模塊、權(quán)限資源等進(jìn)行配置,為了更好的用戶體驗(yàn),圖標(biāo)是必不可少的!2011-07-07
很酷的星級(jí)評(píng)分系統(tǒng)原生JS實(shí)現(xiàn)
這篇文章主要weidajiaxiangxi介紹了很酷的星級(jí)評(píng)分系統(tǒng)原生JS實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08

