日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

淺析AJAX中JavaScript類的三種成員_AJAX教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:揭秘AJAX將成為移動Web2.0時代首選開發(fā)平臺
一、 引言 最近,Opera宣布通過他們的瀏覽器把AJAX技術(shù)應(yīng)用于移動設(shè)備開發(fā)中�?紤]到Opera瀏覽器在目前瀏覽器市場(特別是在移動瀏覽器市場)的流行性,我們可以預(yù)計這一宣布對于整個瀏覽器市場必然會產(chǎn)生重要影響。從加入到移動服務(wù)開發(fā)市場幾年的經(jīng)驗(yàn)來看,我

實(shí)現(xiàn)類的公有成員

  前面定義的任何類成員都屬于公有成員的范疇,該類的任何實(shí)例都對外公開這些屬性和方法。

  實(shí)現(xiàn)類的私有成員

  私有成員即在類的內(nèi)部實(shí)現(xiàn)中可以共享的成員,不對外公開。JavaScript中并沒有特殊的機(jī)制來定義私有成員,但可以用一些技巧來實(shí)現(xiàn)這個功能。

  這個技巧主要是通過變量的作用域性質(zhì)來實(shí)現(xiàn)的,在JavaScript中,一個函數(shù)內(nèi)部定義的變量稱為局部變量,該變量不能夠被此函數(shù)外的程序所訪問,卻可以被函數(shù)內(nèi)部定義的嵌套函數(shù)所訪問。在實(shí)現(xiàn)私有成員的過程中,正是利用了這一性質(zhì)。

  前面提到,在類的構(gòu)造函數(shù)中可以為類添加成員,通過這種方式定義的類成員,實(shí)際上共享了在構(gòu)造函數(shù)內(nèi)部定義的局部變量,這些變量就可以看作類的私有成員,例如:

<script language="JavaScript" type="text/javascript">
<!--
function class1(){
 var pp=" this is a private property"; //私有屬性成員pp
 function pm(){ //私有方法成員pm,顯示pp的值
  alert(pp);
 }
 this.method1=function(){
  //在公有成員中改變私有屬性的值
  pp="pp has been changed";
 }
 this.method2=function(){
  pm(); //在公有成員中調(diào)用私有方法
 }
}
var obj1=new class1();
obj1.method1(); //調(diào)用公有方法method1
obj1.method2(); //調(diào)用公有方法method2
//-->
</script>

  這樣,就實(shí)現(xiàn)了私有屬性pp和私有方法pm。運(yùn)行完class1以后,盡管看上去pp和pm這些局部變量應(yīng)該隨即消失,但實(shí)際上因?yàn)閏lass1是通過new來運(yùn)行的,它所屬的對象還沒消失,所以仍然可以通過公開成員來對它們進(jìn)行操作。

  注意:這些局部變量(私有成員),被所有在構(gòu)造函數(shù)中定義的公有方法所共享,而且僅被在構(gòu)造函數(shù)中定義的公有方法所共享。這意味著,在prototype中定義的類成員將不能訪問在構(gòu)造體中定義的局部變量(私有成員)。

  要使用私有成員,是以犧牲代碼可讀性為代價的。而且這種實(shí)現(xiàn)更多的是一種JavaScript技巧,因?yàn)樗⒉皇钦Z言本身具有的機(jī)制。但這種利用變量作用域性質(zhì)的技巧,卻是值得借鑒的。

  實(shí)現(xiàn)靜態(tài)成員

  靜態(tài)成員屬于一個類的成員,它可以通過“類名.靜態(tài)成員名”的方式訪問。在JavaScript中,可以給一個函數(shù)對象直接添加成員來實(shí)現(xiàn)靜態(tài)成員,因?yàn)楹瘮?shù)也是一個對象,所以對象的相關(guān)操作,對函數(shù)同樣適用。例如:

function class1(){//構(gòu)造函數(shù)
}
//靜態(tài)屬性
class1.staticProperty="sample";
//靜態(tài)方法
class1.staticMethod=function(){
 alert(class1.staticProperty);
}
//調(diào)用靜態(tài)方法
class1.staticMethod();

  通過上面的代碼,就為類class1添加了一個靜態(tài)屬性和靜態(tài)方法,并且在靜態(tài)方法中引用了該類的靜態(tài)屬性。

  如果要給每個函數(shù)對象都添加通用的靜態(tài)方法,還可以通過函數(shù)對象所對應(yīng)的類Function來實(shí)現(xiàn),例如:

//給類Function添加原型方法:show ArgsCount
Function.prototype.showArgsCount=function(){
 alert(this.length); //顯示函數(shù)定義的形參的個數(shù)
}
function class1(a){
 //定義一個類
}
//調(diào)用通過Function的prototype定義的類的靜態(tài)方法showArgsCount
class1. showArgsCount ();
  由此可見,通過Function的prototype原型對象,可以給任何函數(shù)都加上通用的靜態(tài)成員,這在實(shí)際開發(fā)中可以起到很大的作用,比如在著名的prototype-1.3.1.js框架中,就給所有的函數(shù)定義了以下兩個方法:

//將函數(shù)作為一個對象的方法運(yùn)行
Function.prototype.bind = function(object) {
 var __method = this;
 return function() {
  __method.apply(object, arguments);
 }
}
//將函數(shù)作為事件監(jiān)聽器
Function.prototype.bindAsEventListener = function(object) {
 var __method = this;
 return function(event) {
  __method.call(object, event || window.event);
 }
}

  這兩個方法在prototype-1.3.1框架中起了很大的作用,具體含義及用法將在后面章節(jié)介紹。
 
來源:CSDN
 

分享:如何十分鐘學(xué)會 xajax
譯者按: xajax 最大的特點(diǎn)是他采用了xml response,這樣我們可以用php來布置,處理異步傳送數(shù)據(jù)之后,網(wǎng)頁內(nèi)容的更新。而這些操作其它的ajax 框架都是由js來完成的的。xajax 使我們只需要寫一些php函數(shù),就可以實(shí)現(xiàn)。 所有學(xué)好xajax的關(guān)健在于熟練掌握 xajax

來源:模板無憂//所屬分類:AJAX教程/更新時間:2010-03-17
相關(guān)AJAX教程