javascript 面向?qū)ο蟮腏avaScript類
更新時(shí)間:2010年05月04日 14:44:28 作者:
這一節(jié)來說下緊接著的一個(gè)概念——類。雖然JavaScript中沒有class關(guān)鍵字,但作為開發(fā)人員我們一定要有這個(gè)思想。在C#中類可以分為實(shí)例類和靜態(tài)類,JavaScript亦然。
在上一節(jié)面 JavaScript 面向?qū)ο笾臻g 中說了怎么定義JavaScript命名空間,這一節(jié)來說下緊接著的一個(gè)概念——類。雖然JavaScript中沒有class關(guān)鍵字,但作為開發(fā)人員我們一定要有這個(gè)思想。在C#中類可以分為實(shí)例類和靜態(tài)類,JavaScript亦然。
一,定義實(shí)例類: 在上節(jié)中我定義了一個(gè)cnblogs.news的命名空間,現(xiàn)在就在此命名空間下定義一個(gè)名為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)建對(duì)象就和C#一樣:
// 實(shí)例化一個(gè)對(duì)象
var article =new cnblogs.news.Article();
// 給對(duì)象的屬性賦值
article.title="這是文章標(biāo)題";
article.content="這是文章內(nèi)容";
// 調(diào)用對(duì)象的方法
article.show();
二,定義靜態(tài)類:所謂靜態(tài)類就是直接調(diào)用類的成員,換言之,類的成員是屬于類的,不屬于對(duì)象。同樣以Article為例,代碼如下:
cnblogs.news.Article={
title:"這是文章標(biāo)題",
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)類其實(shí)就是一個(gè)json對(duì)象,恭喜,答對(duì)了! ^_^
三,如何選擇:
那么何時(shí)選擇實(shí)例類,何時(shí)選擇靜態(tài)類呢,就個(gè)人經(jīng)驗(yàn)而言(說得不對(duì)敬請(qǐng)斧正刀正,怎么正都可以^_^),開發(fā)一些對(duì)dom的依賴比較弱,而要求復(fù)用型很強(qiáng)的程序,如工具類,插件類,結(jié)構(gòu),使用靜態(tài)類;反之如果程序?qū)om依賴很強(qiáng),經(jīng)常有變量傳來傳去,或者對(duì)類的結(jié)構(gòu)造成變化,這時(shí)選用實(shí)例類。個(gè)人比較推崇第一種方案,其代碼風(fēng)格較之第二種更像C#,我想寫慣了C#的同學(xué)也會(huì)這樣覺得的,^_^。
作者: 祥叔
一,定義實(shí)例類: 在上節(jié)中我定義了一個(gè)cnblogs.news的命名空間,現(xiàn)在就在此命名空間下定義一個(gè)名為Article類:
復(fù)制代碼 代碼如下:
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)建對(duì)象就和C#一樣:
復(fù)制代碼 代碼如下:
// 實(shí)例化一個(gè)對(duì)象
var article =new cnblogs.news.Article();
// 給對(duì)象的屬性賦值
article.title="這是文章標(biāo)題";
article.content="這是文章內(nèi)容";
// 調(diào)用對(duì)象的方法
article.show();
二,定義靜態(tài)類:所謂靜態(tài)類就是直接調(diào)用類的成員,換言之,類的成員是屬于類的,不屬于對(duì)象。同樣以Article為例,代碼如下:
復(fù)制代碼 代碼如下:
cnblogs.news.Article={
title:"這是文章標(biāo)題",
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)類其實(shí)就是一個(gè)json對(duì)象,恭喜,答對(duì)了! ^_^
三,如何選擇:
那么何時(shí)選擇實(shí)例類,何時(shí)選擇靜態(tài)類呢,就個(gè)人經(jīng)驗(yàn)而言(說得不對(duì)敬請(qǐng)斧正刀正,怎么正都可以^_^),開發(fā)一些對(duì)dom的依賴比較弱,而要求復(fù)用型很強(qiáng)的程序,如工具類,插件類,結(jié)構(gòu),使用靜態(tài)類;反之如果程序?qū)om依賴很強(qiáng),經(jīng)常有變量傳來傳去,或者對(duì)類的結(jié)構(gòu)造成變化,這時(shí)選用實(shí)例類。個(gè)人比較推崇第一種方案,其代碼風(fēng)格較之第二種更像C#,我想寫慣了C#的同學(xué)也會(huì)這樣覺得的,^_^。
作者: 祥叔
相關(guān)文章
js面向?qū)ο?多種創(chuàng)建對(duì)象方法小結(jié)
js面向?qū)ο?多種創(chuàng)建對(duì)象方法小結(jié),需要的朋友可以參考下2012-05-05
JavaScript面象對(duì)象設(shè)計(jì)
學(xué)習(xí)js的高境界就是使用面向?qū)ο蟮姆椒?,?shí)現(xiàn)js的調(diào)用2008-04-04
詳解new function(){}和function(){}() 區(qū)別分析
只要 new 表達(dá)式之后的 constructor 返回(return)一個(gè)引用對(duì)象(數(shù)組,對(duì)象,函數(shù)等),都將覆蓋new創(chuàng)建的匿名對(duì)象,如果返回(return)一個(gè)原始類型(無 return 時(shí)其實(shí)為 return 原始類型 undefined),那么就返回 new 創(chuàng)建的匿名對(duì)象。2008-03-03
JavaScript 面向?qū)ο缶幊蹋?) 基礎(chǔ)
自從有了Ajax這個(gè)概念,JavaScript作為Ajax的利器,其作用一路飆升。JavaScript最基本的使用,以及語(yǔ)法、瀏覽器對(duì)象等等東東在這里就不累贅了。把主要篇幅放在如何實(shí)現(xiàn)JavaScript的面向?qū)ο缶幊谭矫妗?/div> 2010-05-05
JavaScript 對(duì)象鏈?zhǔn)讲僮鳒y(cè)試代碼
自從使用了jQuery以后,對(duì)它的鏈?zhǔn)讲僮骱苁且蕾?,以至于常常覺得其他庫(kù)不好用。。2010-04-04
JavaScript中使用構(gòu)造函數(shù)實(shí)現(xiàn)繼承的代碼
JavaScript中借用構(gòu)造函數(shù)實(shí)現(xiàn)繼承的代碼,需要的朋友可以參考下。2010-08-08最新評(píng)論

