国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > JS > 正文

javascript對象的property和prototype是這樣一種關(guān)系

2024-09-06 12:42:52
字體:
供稿:網(wǎng)友
ECMAScript可以識別兩種類型的對象,一種叫做Native Object屬于語言范疇;一種叫做Host Object,由運(yùn)行環(huán)境提供例如document對象, 
Dom Node等 
Native objects是一種松散的結(jié)構(gòu)并且可以動態(tài)的增加屬性(property),所有的屬性都有一個名字和一個值,這個值可以是另一個對象的引用 
或者是內(nèi)建的數(shù)據(jù)類型(String, Number, Boolean, Null 或者 Undefined) 
下面的這個簡單的例子描述了一個javascript對象是如何設(shè)置一個屬性的值和如何讀取屬性的值的。
賦值操作 
一個對象的屬性的創(chuàng)建非常簡單,直接通過賦值操作就可以完成屬性的創(chuàng)建。 

var objectRef = new Object(); //create a generic javascript object.   
一個名為testNumber的屬性可以這樣創(chuàng)建。 

objectRef.testNumber = 5;   
/* - or:- */  
objectRef["testNumber"] = 5;   
如果復(fù)制的屬性名稱已經(jīng)存在那么不會再次創(chuàng)建這個屬性,賦值操作僅僅是重新設(shè)置屬性的值 

objectRef.testNumber = 8;   
/* - or:- */  
objectRef["testNumber"] = 8;   
js對象的原型(prototype)自己本身也可以是對象,也可以有屬性(property),對于js對象的(prototype)的賦值操作跟普通對象屬性的創(chuàng)建 
沒什么不同。 
取值操作 
在取值操作中property和prototype就不一樣了,先看最簡單的property取值操作。 

/*為一個對象的屬性賦值,如果這個對象沒有這個屬性,那么在賦值操作后,這個對象就有這個屬性了 */  
objectRef.testNumber = 8;   
/* 讀出這個屬性的值 */  
var val = objectRef.testNumber;   
/* 現(xiàn)在val 就得到了剛才賦予objectRef的值8了*/  
prototype揭密 
但是所有的對象都可以有prototypes, prototypes自己也是對象,那么他也可以有prototypes,這樣循環(huán)下去就形成了一個prototype鏈, 
這個鏈當(dāng)他遇到鏈中隊(duì)形的prototype是null時中止。(Object的默認(rèn)的prototype是null) 

var objectRef = new Object(); //create a generic javascript object.   
創(chuàng)建一個新的js對象,這時這個對象的prototype是Null,所以objectRef的prototype鏈只包含一個對象Object.prototype 
我們在看下面的 

/* 構(gòu)建MyObject1這個類型的構(gòu)造函數(shù)  
   MyObject1 - type.  
*/  
function MyObject1(formalParameter){   
    /* 為者對象創(chuàng)建一個屬性名字叫testNumber  
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 广水市| 青田县| 日照市| 象山县| 朝阳区| 邵阳市| 神池县| 五华县| 祁东县| 禹州市| 东安县| 富顺县| 琼结县| 平阴县| 建阳市| 梁山县| 随州市| 大洼县| 大埔县| 沁源县| 当雄县| 股票| 太湖县| 英德市| 台江县| 铁力市| 台前县| 济南市| 黑河市| 西平县| 肇源县| 河西区| 同仁县| 天峨县| 崇义县| 平远县| 宣威市| 右玉县| 高雄县| 龙江县| 抚松县|