現(xiàn)代 javscript 編程 資料第2/6頁
更新時(shí)間:2007年04月09日 00:00:00 作者:
面向?qū)ο蟮腏avaScript
從語言的視角來看,面向?qū)ο蟮某绦蛟O(shè)計(jì)和面向?qū)ο蟮腏avaScript語言絕對(duì)不是什么摩登的東西;JavaScript最開始就是被設(shè)計(jì)成一種徹底的面向?qū)ο笳Z言。然而,隨著JavaScript在其使用和接受的過程中的“逐步發(fā)展”,其它語言(如Ruby,Python,和Perl等)的程序員留意到了它并開始將他們的編程模式引入了JavaScript。
面向?qū)ο蟮腏avaScript代碼的外觀和內(nèi)部運(yùn)作都有別于其它具有對(duì)象能力的語言。在第二章我將深入論述使它如此獨(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言的方式組織起來的。你可以創(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)文章
使用requestAnimationFrame實(shí)現(xiàn)js動(dòng)畫性能好
requestAnimationFrame優(yōu)于setTimeout/setInterval的地方在于它是由瀏覽器專門為動(dòng)畫提供的API,在運(yùn)行時(shí)瀏覽器會(huì)自動(dòng)優(yōu)化方法的調(diào)用,并且如果頁面不是激活狀態(tài)下的話,動(dòng)畫會(huì)自動(dòng)暫停,有效節(jié)省了CPU開銷,這篇文章給大家詳細(xì)介紹使用requestAnimationFrame實(shí)現(xiàn)js動(dòng)畫2015-08-08微信小程序中插入激勵(lì)視頻廣告并獲取收益(實(shí)例代碼)
這篇文章主要介紹了微信小程序中插入激勵(lì)視頻廣告并獲取收益,通過代碼給大家介紹了如何插入及注意事項(xiàng),需要的朋友可以參考下2019-12-12javascript實(shí)現(xiàn)的textarea運(yùn)行框效果代碼 不用指定id批量指定
今天在寫一個(gè)網(wǎng)頁的時(shí)候用到了N多嵌套在textarea標(biāo)簽里的代碼,定義雙擊運(yùn)行其內(nèi)的代碼段。但是每次創(chuàng)建一個(gè)這樣的可運(yùn)行的實(shí)例都要給textarea元素自定義一個(gè)id值和寫入雙擊事件,好不麻煩。2009-12-12js中的document.querySelector()方法舉例詳解
這篇文章主要給大家介紹了關(guān)于js中document.querySelector()方法的相關(guān)資料,document.querySelector是JavaScript中的一個(gè)內(nèi)置方法,用于通過CSS選擇器選擇文檔中的第一個(gè)匹配元素,需要的朋友可以參考下2024-01-01Echarts.js實(shí)現(xiàn)水滴球和海洋效果
這篇文章介紹了Echarts.js實(shí)現(xiàn)水滴球和海洋效果的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04js jquery 獲取某一元素到瀏覽器頂端的距離實(shí)現(xiàn)方法
今天小編就為大家分享一篇js jquery 獲取某一元素到瀏覽器頂端的距離實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-09-0925個(gè)讓你眼前一亮的JavaScript代碼技巧分享
學(xué)習(xí)強(qiáng)大的JavaScript一行代碼,能夠節(jié)省你的時(shí)間和代碼量,所以本文為大家整理了25個(gè)JavaScript實(shí)用代碼技巧,感興趣的小伙伴可以了解一下2023-07-07