javascript 面向?qū)ο蟮腏avaScript類
更新時間:2010年05月04日 14:44:28 作者:
這一節(jié)來說下緊接著的一個概念——類。雖然JavaScript中沒有class關(guān)鍵字,但作為開發(fā)人員我們一定要有這個思想。在C#中類可以分為實例類和靜態(tài)類,JavaScript亦然。
在上一節(jié)面 JavaScript 面向?qū)ο笾臻g 中說了怎么定義JavaScript命名空間,這一節(jié)來說下緊接著的一個概念——類。雖然JavaScript中沒有class關(guān)鍵字,但作為開發(fā)人員我們一定要有這個思想。在C#中類可以分為實例類和靜態(tài)類,JavaScript亦然。
一,定義實例類: 在上節(jié)中我定義了一個cnblogs.news的命名空間,現(xiàn)在就在此命名空間下定義一個名為Article類:
cnblogs.news.Article=function(){
var _this=this;
this.title=null;
this.content=null;
this.show=function(){
document.write("<h1>"+_this.title+"</h1>");
document.write("<p>"+_this.content+"</p>");
}
}
創(chuàng)建對象就和C#一樣:
// 實例化一個對象
var article =new cnblogs.news.Article();
// 給對象的屬性賦值
article.title="這是文章標題";
article.content="這是文章內(nèi)容";
// 調(diào)用對象的方法
article.show();
二,定義靜態(tài)類:所謂靜態(tài)類就是直接調(diào)用類的成員,換言之,類的成員是屬于類的,不屬于對象。同樣以Article為例,代碼如下:
cnblogs.news.Article={
title:"這是文章標題",
content:"這是文章內(nèi)容",
show:function(){
document.write("<h1>"+cnblogs.news.Article.title+"</h1>");
document.write("<p>"+cnblogs.news.Article.content+"</p>");
}
};
調(diào)用方式也和C#類似:
cnblogs.news.Article.show();
到這里或許你已經(jīng)發(fā)現(xiàn)了,所謂JavaScript靜態(tài)類其實就是一個json對象,恭喜,答對了! ^_^
三,如何選擇:
那么何時選擇實例類,何時選擇靜態(tài)類呢,就個人經(jīng)驗而言(說得不對敬請斧正刀正,怎么正都可以^_^),開發(fā)一些對dom的依賴比較弱,而要求復用型很強的程序,如工具類,插件類,結(jié)構(gòu),使用靜態(tài)類;反之如果程序?qū)om依賴很強,經(jīng)常有變量傳來傳去,或者對類的結(jié)構(gòu)造成變化,這時選用實例類。個人比較推崇第一種方案,其代碼風格較之第二種更像C#,我想寫慣了C#的同學也會這樣覺得的,^_^。
作者: 祥叔
一,定義實例類: 在上節(jié)中我定義了一個cnblogs.news的命名空間,現(xiàn)在就在此命名空間下定義一個名為Article類:
復制代碼 代碼如下:
cnblogs.news.Article=function(){
var _this=this;
this.title=null;
this.content=null;
this.show=function(){
document.write("<h1>"+_this.title+"</h1>");
document.write("<p>"+_this.content+"</p>");
}
}
創(chuàng)建對象就和C#一樣:
復制代碼 代碼如下:
// 實例化一個對象
var article =new cnblogs.news.Article();
// 給對象的屬性賦值
article.title="這是文章標題";
article.content="這是文章內(nèi)容";
// 調(diào)用對象的方法
article.show();
二,定義靜態(tài)類:所謂靜態(tài)類就是直接調(diào)用類的成員,換言之,類的成員是屬于類的,不屬于對象。同樣以Article為例,代碼如下:
復制代碼 代碼如下:
cnblogs.news.Article={
title:"這是文章標題",
content:"這是文章內(nèi)容",
show:function(){
document.write("<h1>"+cnblogs.news.Article.title+"</h1>");
document.write("<p>"+cnblogs.news.Article.content+"</p>");
}
};
調(diào)用方式也和C#類似:
cnblogs.news.Article.show();
到這里或許你已經(jīng)發(fā)現(xiàn)了,所謂JavaScript靜態(tài)類其實就是一個json對象,恭喜,答對了! ^_^
三,如何選擇:
那么何時選擇實例類,何時選擇靜態(tài)類呢,就個人經(jīng)驗而言(說得不對敬請斧正刀正,怎么正都可以^_^),開發(fā)一些對dom的依賴比較弱,而要求復用型很強的程序,如工具類,插件類,結(jié)構(gòu),使用靜態(tài)類;反之如果程序?qū)om依賴很強,經(jīng)常有變量傳來傳去,或者對類的結(jié)構(gòu)造成變化,這時選用實例類。個人比較推崇第一種方案,其代碼風格較之第二種更像C#,我想寫慣了C#的同學也會這樣覺得的,^_^。
作者: 祥叔
相關(guān)文章
討論javascript(一)工廠方式 js面象對象的定義方法
看《javascript高級程序設計》有感2009-12-12
JavaScript面向?qū)ο笤O計二 構(gòu)造函數(shù)模式
在Javascript面向?qū)ο笤O計一——工廠模式 中介紹了使用CreateEmployee()函數(shù)創(chuàng)建員工類。ECMAScript中的構(gòu)造函數(shù)可以用來創(chuàng)建特定類型的對象,如Object和Array這樣的原生構(gòu)造函數(shù),在運行時會自動出現(xiàn)在執(zhí)行環(huán)境中,此外也可以創(chuàng)建自定義的構(gòu)造函數(shù),從而創(chuàng)建自定義對象類型的屬性和方法2011-12-12
javascript面向?qū)ο笾甁avascript 繼承
所有面向?qū)ο蟮恼Z言都應該有繼承的特性,JavaScript 也不例外。2010-05-05
JavaScript 使用簡略語法創(chuàng)建對象的代碼
JavaScript 使用簡略語法創(chuàng)建對象的代碼 ,需要的朋友可以參考下。2010-01-01
一實用的實現(xiàn)table排序的Javascript類庫
一實用的實現(xiàn)table排序的Javascript類庫...2007-09-09
JavaScript定義類或函數(shù)的幾種方式小結(jié)
js中不論是定義類或者函數(shù),很多朋友想將代碼寫的更專業(yè),更方便擴展等,那么就可以參考這篇文章了,最好是總結(jié),建議大家收藏下。2011-01-01
JavaScript 基于原型的對象(創(chuàng)建、調(diào)用)
在我們寫js代碼的時候,內(nèi)部對象是不可避免的要引用,但是光靠這些對象是不夠的,所以需要我們自己定義對象,這個時候通常用到的對象是第三種,即基于原型的對象,下面就如何創(chuàng)建自己的對象,定義對象的方法、屬性,調(diào)用對象給出詳細的說明。2009-10-10

