国产探花免费观看_亚洲丰满少妇自慰呻吟_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
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 定边县| 黄石市| 临澧县| 松滋市| 娄烦县| 紫阳县| 深水埗区| 贵州省| 东宁县| 嘉鱼县| 烟台市| 沙雅县| 武威市| 武强县| 黔江区| 神木县| 陕西省| 隆子县| 周至县| 奉贤区| 家居| 衡南县| 琼中| 磐石市| 长顺县| 东光县| 镇赉县| 山阴县| 合肥市| 扬州市| 横峰县| 珠海市| 玉林市| 洮南市| 扎囊县| 响水县| 休宁县| 阳江市| 城口县| 奈曼旗| 镇雄县|