精品秘无码一区二区三区老师-精品秘一区二三区免费雷安-精品蜜桃秘一区二区三区-精品蜜桃秘一区二区三区粉嫩-精品蜜桃一区二区三区-精品蜜臀国产aⅴ一区二区三区

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

js基礎(chǔ):Javascript中公有成員,私有成員,靜態(tài)成員

admin
2010年8月18日 10:31 本文熱度 5201
一、實(shí)現(xiàn)類(lèi)的公有成員:

1)       定義的成員屬性和方法能夠被任何實(shí)例訪問(wèn),對(duì)任何的實(shí)例都是公開(kāi)的,成為公有成員。在javascript中,一般的屬性和方法的定義都是公有的,請(qǐng)看下面的例子:function class1(){

this.prop=1;

this.showProp();

}

 

//創(chuàng)建一個(gè)類(lèi)的實(shí)例

var obj1=new class1();

class1.prototype.showProp=function(){

    alert(this.prop);

}

2)       以上class1中的屬性,方法都是公共的,屬于任何實(shí)例對(duì)象。

二、實(shí)現(xiàn)類(lèi)的私有成員:

1)       私有成員即是在內(nèi)部實(shí)現(xiàn)中可以共享的成員,但是并不對(duì)外公開(kāi)。Javascript中并沒(méi)有特殊的機(jī)制來(lái)實(shí)現(xiàn)私有成員,但是可以用一些技巧來(lái)實(shí)現(xiàn)這個(gè)功能。

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

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

function class1(){

    var pp=”this is a private property”; //私有屬性成員pp,

    function pm(){                         //私有方法成員,顯示pp的值

    alert(pp);

}

this.method1=function(){ //在公有成員中改變私有屬性的值

    pp=”pp has bean changed”;

}

this.method2=function(){

    pm();         //在公有成員中調(diào)用私有方法。

}

}

var obj1=new class1();

obj1.method1();

obj2.method2();

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

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

三、實(shí)現(xiàn)類(lèi)的靜態(tài)成員:

1)       和私有成員的勉強(qiáng)相比,靜態(tài)成員顯得“正統(tǒng)”的多。靜態(tài)成員屬于一個(gè)類(lèi)的成員,它可以通過(guò)“類(lèi)名.靜態(tài)成員名”的方式訪問(wèn)。在javascript中,可以給一個(gè)函數(shù)對(duì)象直接添加成員實(shí)現(xiàn)靜態(tài)成員,因?yàn)楹瘮?shù)也是一個(gè)對(duì)象,所以對(duì)象的相關(guān)操作,對(duì)函數(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();

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

3)       如果要給每個(gè)函數(shù)對(duì)象對(duì)添加通用的靜態(tài)方法,還可以通過(guò)函數(shù)對(duì)象所對(duì)應(yīng)的類(lèi)function來(lái)實(shí)現(xiàn),例如:

//給類(lèi)Function添加原型方法:showArgsCount

Function.prototype.showArgsCount=function(){

    alert(this.length);  //顯示函數(shù)定義的形參的個(gè)數(shù)

}

function class1(a){

    //定義一個(gè)類(lèi)

}

//調(diào)用通過(guò)Function的property定義的類(lèi)的靜態(tài)方法showArgsCount

class1.showArgsCount();

4)       由此可見(jiàn),通過(guò)Function的property原型對(duì)象,可以給任何函數(shù)都加上通用的靜態(tài)成員,這在實(shí)際中可起到很大的作用,比如在著名的prototype-1.3.1.js框架中,就給所有的函數(shù)定義了以下兩個(gè)方法:

//將函數(shù)做為一個(gè)對(duì)象的方法運(yùn)行

Function.prototype.bind=function(object){

    var _method=this;

    return function(){

    _method.apply(object,arguments);

}

}

//將函數(shù)作為事件鑒聽(tīng)器

Function.prototype.bindAsEventListener=function(object){

    var _method=this;

    return function(event){

    _mehtod.call(object,event||window.event);

}

}

該文章在 2010/8/18 10:31:01 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專(zhuān)業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車(chē)隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類(lèi)企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷(xiāo)售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 亚洲精品久久久久久一区二区 | 麻豆麻豆必出精品入口 | 国产制服91一区二区三区制服 | 无码播放一区二区三区 | 国产在线视频专区 | 人妻少妇偷人精品无码免费 | 精品久久久无码中文字幕 | 国产精品一在线观看 | 国产在线播放精品视频 | 国产91无码天天欲色在线 | 国产午夜精品一区二区三区嫩草 | 亚洲AV无码成人精品区天堂 | 国产成人精品三上悠亚久久 | 亚洲人视频免费在线观看 | 91精品国产综合久久久久久 | 久久久久久国产精品免费网站 | 一区二区三区欧美视频 | 欧美丰满少妇久久无码精品 | 日本与韩国最新精品影视大赏 | 免费无码av片在线观看网址 | 国产91熟女高潮一区二区 | 午夜无码乱码在线观看 | 亚洲国产一区成人 | 日韩污一区二区三区 | 欧美国产伦久久久久久久 | 国产浓毛大泬熟妇视频 | 国产成人精品一区二区a片带套 | 国产精品久久久久久一区二区三区 | 把女人弄特爽黄a大片 | 欧美亚洲日本国产 | 修理工厨房侵犯人妻系列国产 | 亚洲动漫偷拍另类校园 | 免费a级毛片无码a∨免费 | 亚洲国产欧美日韩另类欧美日韩精品一区二区在线 | 亚洲av成人网| 午夜精品国产欧美日韩久 | 一二三四精品免费视频 | 亚洲黄色网址大全 | 成人无码α片在线观看 | 国产真实乱了露脸在线观看 | 日本无码色哟哟婷婷最新网站 |