最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Javascript 面向?qū)ο螅ㄒ唬?共有方法,私有方法,特權(quán)方法)

 更新時間:2012年05月23日 17:23:57   作者:  
最近在網(wǎng)上盾一些JS面向?qū)ο蟮臇|西。把其他高手們總結(jié)的東西,加上自己的理解,總結(jié)一下
私有方法:私有方法本身是可以訪問類內(nèi)部的所有屬性的,即私有屬性和公有屬性。但是私有方法是不可以在類的外部被調(diào)用。

私有方法寫法:
復(fù)制代碼 代碼如下:

function myClass () {
var private_attribute = initial_value;
function private_method () { }
var private_method2 = function () { }
}

實例showpet()就是一個私有方法

復(fù)制代碼 代碼如下:

var pet=function(){  var temp=""  //私有變量只有在函數(shù)或者對象作用域范圍內(nèi)能訪問
function showpet(){
  alert("123")
}
showpet();//私有方法可以在函數(shù)作用域范圍內(nèi)使用。
}
showpet();//會出錯
pet.showpet()//還是不能這樣調(diào)用

var Penguin=new pet() //實例化一個pet對象
Penguin.showpet()//不好意思這樣子還是不能讓你調(diào)用。


公有方法:

  1.公有方法是可以在類的外部被調(diào)用的,

  2.但是它不可以訪問類的私有屬性。

  3.公有方法必須在類的內(nèi)部或者外部通過類的prototype屬性添加。

公有方法寫法:

復(fù)制代碼 代碼如下:

function myClass () {
this.public_attribute = initial_value;
this.prototype.public_method = function () { }
}
myClass.prototype.public_attribute2 = initial_value;
myClass.prototype.public_method2 = function () { }

實例:
復(fù)制代碼 代碼如下:

var pet=function(){
function showname(){//私有方法
  alert(this.name)
}
  this.show=function(){ //如果這里不理解,請注意這個方法下面就要介紹了。
  showname();
  }
}
pet.prototype.setname=function(str){
name=str;
}
var Penguin=new pet()
  Penguin.setname("Penguin");//添加實例的name值為Penguin
  Penguin.show(); //彈出Penguin
  Penguin.setname("wind");//添加實例的name值為wind
  Penguin.show(); //彈出wind


特權(quán)方法:

  1.特權(quán)方法是可以在類的外部被調(diào)用的,

  2.但是它可以訪問類的私有屬性,并且也是可以訪問類的公有屬性,可以勉強(qiáng)的認(rèn)為它是一種特殊的公有方法。

  3.但是它與上面的公有方法的聲明與定義方式不同。特權(quán)方法必須在類的內(nèi)部聲明定義。

特權(quán)方法寫法:
復(fù)制代碼 代碼如下:

function myClass () {
this.privileged_method = function () { }
}

實例
復(fù)制代碼 代碼如下:

var pet=function(){
function showname(){//私有方法
alert(this.name)
}
this.show=function(){//通過使用this關(guān)鍵字定義一個特權(quán)方法。
showname(); //在特權(quán)方法中訪問私有方法;
}
}
pet.prototype.setname=function(str){
name=str;
}
var Penguin=new pet();//實例化一個pet對象
Penguin.setname("Penguin");//調(diào)用公有方法修改
Penguin.show(); //調(diào)用特權(quán)方法訪問私有方法,彈出name


下面是我自己的一些理解:通過對上面這些的學(xué)習(xí),結(jié)合我自己看的書。對于公有,私有,特權(quán)的理解如下:
公有方法:就是所有通過該類實例化出來的對象,共同都擁有或者說都可以使用的方法。一般把共用的方法,都放在“原型對象“當(dāng)中,如果放在構(gòu)造函數(shù)中,會重復(fù)創(chuàng)建共同的方法。

私有方法:不能在外部調(diào)用。
特權(quán)方法:利用的閉包原理,即通過作用域鏈,讓內(nèi)部函數(shù)能夠訪問外部函數(shù)的變量對象(即該類的私有變量、私有方法)。(作用域鏈,閉包,變量對象;這三個在《Javascript高級程序中有講解》)

相關(guān)文章

  • 面向?qū)ο蟮木幊趟枷朐趈avascript中的運用上部

    面向?qū)ο蟮木幊趟枷朐趈avascript中的運用上部

    對于正在從事或者打算從事編程的人來說,面向?qū)ο笫且粋€耳熟能詳?shù)脑~,幾乎每一個人都能列舉出一些面向?qū)ο蟮木幊陶Z言,例如C++,JAVA,C#等等。
    2009-11-11
  • javascript 面向?qū)ο蟮腏avaScript類

    javascript 面向?qū)ο蟮腏avaScript類

    這一節(jié)來說下緊接著的一個概念——類。雖然JavaScript中沒有class關(guān)鍵字,但作為開發(fā)人員我們一定要有這個思想。在C#中類可以分為實例類和靜態(tài)類,JavaScript亦然。
    2010-05-05
  • js 簡單類代碼

    js 簡單類代碼

    js類的封裝方法,說實話我也是新手,一直沒涉及到j(luò)s的類,下面的代碼,應(yīng)該看的懂,不懂就先用腦子記下了,見得多了就會了
    2008-05-05
  • Javascript面向?qū)ο笤O(shè)計一 工廠模式

    Javascript面向?qū)ο笤O(shè)計一 工廠模式

    工廠模式抽象了創(chuàng)建具體對象的過程,但是在ECMAScript中無法創(chuàng)建類,所以就使用一種函數(shù)來封裝以特定接口創(chuàng)建對象的細(xì)節(jié)
    2011-12-12
  • JavaScript面象對象設(shè)計

    JavaScript面象對象設(shè)計

    學(xué)習(xí)js的高境界就是使用面向?qū)ο蟮姆椒?,實現(xiàn)js的調(diào)用
    2008-04-04
  • JavaScript 設(shè)計模式之組合模式解析

    JavaScript 設(shè)計模式之組合模式解析

    “組合模式”顧名思意就是將多種實現(xiàn)組合在一起而達(dá)到牽一處而動全身的效果。
    2010-04-04
  • 最新評論

    天长市| 顺昌县| 怀仁县| 平凉市| 会东县| 东乡族自治县| 文化| 治县。| 湖南省| 黄平县| 澳门| 巴马| 夏津县| 若尔盖县| 阆中市| 文化| 鲁甸县| 巴林右旗| 和平县| 百色市| 易门县| 思茅市| 平江县| 郧西县| 柳州市| 太康县| 德安县| 宿州市| 商南县| 绵阳市| 云安县| 临汾市| 托里县| 咸阳市| 三亚市| 柳河县| 英超| 华池县| 罗定市| 大名县| 陇南市|