javascript 面向?qū)ο蟮腏avaScript類
一,定義實(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ì)這樣覺得的,^_^。
作者: 祥叔
相關(guān)文章
討論javascript(一)工廠方式 js面象對(duì)象的定義方法
看《javascript高級(jí)程序設(shè)計(jì)》有感2009-12-12JavaScript面向?qū)ο笤O(shè)計(jì)二 構(gòu)造函數(shù)模式
在Javascript面向?qū)ο笤O(shè)計(jì)一——工廠模式 中介紹了使用CreateEmployee()函數(shù)創(chuàng)建員工類。ECMAScript中的構(gòu)造函數(shù)可以用來創(chuàng)建特定類型的對(duì)象,如Object和Array這樣的原生構(gòu)造函數(shù),在運(yùn)行時(shí)會(huì)自動(dòng)出現(xiàn)在執(zhí)行環(huán)境中,此外也可以創(chuàng)建自定義的構(gòu)造函數(shù),從而創(chuàng)建自定義對(duì)象類型的屬性和方法2011-12-12JavaScript 設(shè)計(jì)模式之組合模式解析
“組合模式”顧名思意就是將多種實(shí)現(xiàn)組合在一起而達(dá)到牽一處而動(dòng)全身的效果。2010-04-04javascript面向?qū)ο笾甁avascript 繼承
所有面向?qū)ο蟮恼Z(yǔ)言都應(yīng)該有繼承的特性,JavaScript 也不例外。2010-05-05JavaScript 使用簡(jiǎn)略語(yǔ)法創(chuàng)建對(duì)象的代碼
JavaScript 使用簡(jiǎn)略語(yǔ)法創(chuàng)建對(duì)象的代碼 ,需要的朋友可以參考下。2010-01-01一實(shí)用的實(shí)現(xiàn)table排序的Javascript類庫(kù)
一實(shí)用的實(shí)現(xiàn)table排序的Javascript類庫(kù)...2007-09-09JavaScript定義類或函數(shù)的幾種方式小結(jié)
js中不論是定義類或者函數(shù),很多朋友想將代碼寫的更專業(yè),更方便擴(kuò)展等,那么就可以參考這篇文章了,最好是總結(jié),建議大家收藏下。2011-01-01學(xué)習(xí)面向?qū)ο笾嫦驅(qū)ο蟮男g(shù)語(yǔ)
學(xué)習(xí)面向?qū)ο笾嫦驅(qū)ο蟮男g(shù)語(yǔ),學(xué)習(xí)面向?qū)ο笤O(shè)計(jì)的朋友可以參考下。2010-11-11JavaScript 基于原型的對(duì)象(創(chuàng)建、調(diào)用)
在我們寫js代碼的時(shí)候,內(nèi)部對(duì)象是不可避免的要引用,但是光靠這些對(duì)象是不夠的,所以需要我們自己定義對(duì)象,這個(gè)時(shí)候通常用到的對(duì)象是第三種,即基于原型的對(duì)象,下面就如何創(chuàng)建自己的對(duì)象,定義對(duì)象的方法、屬性,調(diào)用對(duì)象給出詳細(xì)的說明。2009-10-10