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

首頁 > 開發 > JS > 正文

比較詳細的javascript對象的property和prototype是什么一種關系

2024-09-06 12:41:54
字體:
來源:轉載
供稿:網友
ECMAScript可以識別兩種類型的對象,一種叫做Native Object屬于語言范疇;一種叫做Host Object,由運行環境提供例如document對象,
Dom Node等
Native objects是一種松散的結構并且可以動態的增加屬性(property),所有的屬性都有一個名字和一個值,這個值可以是另一個對象的引用
或者是內建的數據類型(String, Number, Boolean, Null 或者 Undefined)
下面的這個簡單的例子描述了一個javascript對象是如何設置一個屬性的值和如何讀取屬性的值的。

賦值操作
一個對象的屬性的創建非常簡單,直接通過賦值操作就可以完成屬性的創建。
代碼

   1. var objectRef = new Object(); //create a generic javascript object.  


一個名為testNumber的屬性可以這樣創建。
代碼

   1. objectRef.testNumber = 5;  
   2. /* - or:- */  
   3. objectRef["testNumber"] = 5;  


如果復制的屬性名稱已經存在那么不會再次創建這個屬性,賦值操作僅僅是重新設置屬性的值
代碼

   1. objectRef.testNumber = 8;  
   2. /* - or:- */  
   3. objectRef["testNumber"] = 8;  



js對象的原型(prototype)自己本身也可以是對象,也可以有屬性(property),對于js對象的(prototype)的賦值操作跟普通對象屬性的創建
沒什么不同。

取值操作
在取值操作中property和prototype就不一樣了,先看最簡單的property取值操作。
代碼

   1. /*為一個對象的屬性賦值,如果這個對象沒有這個屬性,那么在賦值操作后,這個對象就有這個屬性了 */  
   2. objectRef.testNumber = 8;  
   3. /* 讀出這個屬性的值 */  
   4. var val = objectRef.testNumber;  
   5.   
   6. /* 現在val 就得到了剛才賦予objectRef的值8了*/  


prototype揭密

但是所有的對象都可以有prototypes, prototypes自己也是對象,那么他也可以有prototypes,這樣循環下去就形成了一個prototype鏈,
這個鏈當他遇到鏈中隊形的prototype是null時中止。(Object的默認的prototype是null)
代碼

   1. var objectRef = new Object(); //create a generic javascript object.  


創建一個新的js對象,這時這個對象的prototype是Null,所以objectRef的prototype鏈只包含一個對象Object.prototype
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 荔浦县| 镶黄旗| 边坝县| 金华市| 三台县| 金平| 夹江县| 乐亭县| 洮南市| 光山县| 蓝山县| 昭苏县| 望都县| 仲巴县| 乐都县| 钟祥市| 民丰县| 广饶县| 兰西县| 万全县| 温州市| 密云县| 民县| 吉木萨尔县| 宁城县| 阿瓦提县| 双牌县| 安多县| 垫江县| 尚义县| 溆浦县| 拜泉县| 白城市| 峨眉山市| 江达县| 巴彦县| 扎囊县| 安顺市| 曲靖市| 通山县| 上林县|