欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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.但是它可以訪問類的私有屬性,并且也是可以訪問類的公有屬性,可以勉強的認為它是一種特殊的公有方法。

  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)文章

  • javascript 寫類方式之七

    javascript 寫類方式之七

    dojo最新是1.3.1了,記得07年時還是0.4。文檔也漸漸多了起來,用dojo的也慢慢多了。dojo還發(fā)布了core版,壓縮后只有27kb。
    2009-07-07
  • Javascript 面向?qū)ο螅ㄒ唬?共有方法,私有方法,特權(quán)方法)

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

    最近在網(wǎng)上盾一些JS面向?qū)ο蟮臇|西。把其他高手們總結(jié)的東西,加上自己的理解,總結(jié)一下
    2012-05-05
  • CLASS_CONFUSION JS混淆 全源碼

    CLASS_CONFUSION JS混淆 全源碼

    這里通過JS字符串替換、隨機數(shù)運算實現(xiàn)混淆JS代碼,達到降低代碼可讀性,以保護代碼的目的,需要的朋友可以參考一下
    2007-12-12
  • javascript 寫類方式之五

    javascript 寫類方式之五

    用 構(gòu)造函數(shù)+原型 定義一個類;同一構(gòu)造函數(shù)可以定義出多個類型
    2009-07-07
  • JS 繼承實例分析

    JS 繼承實例分析

    主要有三種方法: 1. this.method=Parent; this.method=Parent's constructor 2. Parent.call(this,arg,arg,arg.....);3.Parent.apply(this,arg.arg...) //for Array 還是來點實際的吧...
    2008-11-11
  • js對象的構(gòu)造和繼承實現(xiàn)代碼

    js對象的構(gòu)造和繼承實現(xiàn)代碼

    js對象的構(gòu)造和繼承實現(xiàn)代碼,學(xué)習(xí)javascript面向?qū)ο蟮呐笥芽梢詤⒖枷?。寫出跟漂亮與復(fù)用的代碼。
    2010-12-12
  • javascript Base類 包含基本的方法

    javascript Base類 包含基本的方法

    一個Base類,包含基本的方法,大家可以在這個基礎(chǔ)上拓展下功能。
    2009-07-07
  • JavaScript 工具庫 Cloudgamer JavaScript Library v0.1 發(fā)布

    JavaScript 工具庫 Cloudgamer JavaScript Library v0.1 發(fā)布

    研究了一年多的js,也差不多寫一個自己的js庫了。 我寫這個不算框架,只是一個小型的js工具庫,所以我用的名字是Library。
    2009-10-10
  • JavaScript 原型與繼承說明

    JavaScript 原型與繼承說明

    在上一遍我們簡單的介紹了怎么樣使用JavaScript進行構(gòu)造函數(shù)的書寫,現(xiàn)在來認識下JavaScript的構(gòu)造函數(shù)其原理,主要是關(guān)注與原型的概念,首先看如下代碼。
    2010-06-06
  • JavaScript 繼承詳解(三)

    JavaScript 繼承詳解(三)

    在第一章中,我們使用構(gòu)造函數(shù)和原型的方式在JavaScript的世界中實現(xiàn)了類和繼承, 但是存在很多問題。這一章我們將會逐一分析這些問題,并給出解決方案。
    2009-07-07

最新評論