JavaScript 對(duì)象的屬性和方法4種不同的類型
更新時(shí)間:2010年03月19日 11:54:42 作者:
JavaScript里,對(duì)象的屬性和方法支持4種不同的類型,需要的朋友可以參考下。
第一種類型就是前面所說的私有類型,它的特點(diǎn)是對(duì)外界完全不具備訪問性,要訪問它們,只有通過特定的getter和setter。
第二種類型是動(dòng)態(tài)的公有類型,它的特點(diǎn)是外界可以訪問,而且每個(gè)對(duì)象實(shí)例持有一個(gè)副本,它們之間不會(huì)相互影響。
第三種類型是靜態(tài)的公有類型,或者通常叫做原型屬性,它的特點(diǎn)是每個(gè)對(duì)象實(shí)例共享唯一副本,對(duì)它的改寫會(huì)相互影響。
第四種類型是類屬性,它的特點(diǎn)是作為類型的屬性而不是對(duì)象實(shí)例的屬性,在沒有構(gòu)造對(duì)象時(shí)也能夠訪問,下面通過例子說明這四種屬性類型各自的特點(diǎn)和區(qū)別:
類型的四種屬性
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Example 21.3</title>
</head>
<body>
<h1 id="output"></h1>
<script language="javascript" type="text/javascript">
<!--
function dwn(s)
{
document.write(s + "<br/>");
}
function myClass()
{
var p = 100; //private property; 私有屬性
this.x = 10; //dynamic public property 動(dòng)態(tài)公有屬性
}
myClass.prototype.y = 20; //static public property or prototype property 原型屬性
myClass.z = 30; //static property //靜態(tài)屬性
var a = new myClass();
dwn(a.p); //undefined 私有屬性對(duì)象無法訪問到
dwn(a.x); //10 公有屬性
dwn(a.y); //20 公有屬性
a.x = 20;
a.y = 40;
dwn(a.x); //20
dwn(a.y); //40 //動(dòng)態(tài)公有屬性y覆蓋了原型屬性y
delete(a.x);
delete(a.y);
dwn(a.x); //undefined 動(dòng)態(tài)公有屬性x被刪除后不存在
dwn(a.y); //20 動(dòng)態(tài)公有屬性y被刪除后還原為原型屬性y
dwn(a.z); //undefined 類屬性無法通過對(duì)象訪問
dwn(myClass.z); //30 類屬性應(yīng)該通過類訪問
-->
</script>
</body>
</html>
第二種類型是動(dòng)態(tài)的公有類型,它的特點(diǎn)是外界可以訪問,而且每個(gè)對(duì)象實(shí)例持有一個(gè)副本,它們之間不會(huì)相互影響。
第三種類型是靜態(tài)的公有類型,或者通常叫做原型屬性,它的特點(diǎn)是每個(gè)對(duì)象實(shí)例共享唯一副本,對(duì)它的改寫會(huì)相互影響。
第四種類型是類屬性,它的特點(diǎn)是作為類型的屬性而不是對(duì)象實(shí)例的屬性,在沒有構(gòu)造對(duì)象時(shí)也能夠訪問,下面通過例子說明這四種屬性類型各自的特點(diǎn)和區(qū)別:
類型的四種屬性
復(fù)制代碼 代碼如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Example 21.3</title>
</head>
<body>
<h1 id="output"></h1>
<script language="javascript" type="text/javascript">
<!--
function dwn(s)
{
document.write(s + "<br/>");
}
function myClass()
{
var p = 100; //private property; 私有屬性
this.x = 10; //dynamic public property 動(dòng)態(tài)公有屬性
}
myClass.prototype.y = 20; //static public property or prototype property 原型屬性
myClass.z = 30; //static property //靜態(tài)屬性
var a = new myClass();
dwn(a.p); //undefined 私有屬性對(duì)象無法訪問到
dwn(a.x); //10 公有屬性
dwn(a.y); //20 公有屬性
a.x = 20;
a.y = 40;
dwn(a.x); //20
dwn(a.y); //40 //動(dòng)態(tài)公有屬性y覆蓋了原型屬性y
delete(a.x);
delete(a.y);
dwn(a.x); //undefined 動(dòng)態(tài)公有屬性x被刪除后不存在
dwn(a.y); //20 動(dòng)態(tài)公有屬性y被刪除后還原為原型屬性y
dwn(a.z); //undefined 類屬性無法通過對(duì)象訪問
dwn(myClass.z); //30 類屬性應(yīng)該通過類訪問
-->
</script>
</body>
</html>
相關(guān)文章
JavaScript 面向?qū)ο缶幊蹋?) 基礎(chǔ)
自從有了Ajax這個(gè)概念,JavaScript作為Ajax的利器,其作用一路飆升。JavaScript最基本的使用,以及語法、瀏覽器對(duì)象等等東東在這里就不累贅了。把主要篇幅放在如何實(shí)現(xiàn)JavaScript的面向?qū)ο缶幊谭矫妗?/div> 2010-05-05
用JavaScript實(shí)現(xiàn)單繼承和多繼承的簡(jiǎn)單方法
JavaScript是一種強(qiáng)大的多泛型編程語言,其融合了面向過程、面向?qū)ο蠛秃瘮?shù)式編程于一身,具備強(qiáng)大的表現(xiàn)能力。2009-03-03
討論javascript(一)工廠方式 js面象對(duì)象的定義方法
看《javascript高級(jí)程序設(shè)計(jì)》有感
2009-12-12
收集的幾個(gè)不錯(cuò)的javascript類小例子
自己比較喜歡javascript類,主要是方便擴(kuò)展。
2007-12-12 
