DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> js實例屬性和原型屬性示例詳解
js實例屬性和原型屬性示例詳解
編輯:關於JavaScript     

詳情請仔細研讀注釋,這裡就廢話少說,直接上代碼了。

復制代碼 代碼如下:
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>測試文檔</title>
    <script type="text/javascript">
// 實質上屬性和方法是一樣的,方法是屬性為引用型的函數。
//一個對象有4種屬性:
//                 1,構造函數通過this關鍵字定義的屬性
//                 2,構造函數通過var關鍵字定義的屬性
//                 3,構造函數的原型對象添加的屬性
//                 4,對象動態添加的屬性
//實例的公有屬性:1      通過this關鍵字定義的屬性           可訪問   1,2,3,4
//實例的私有屬性:2      通過var關鍵字定義的屬性。          可訪問   2
//實例的共享屬性:3      通過實例指向的原型添加的屬性。      可訪問   1,3,4
//實例的靜態屬性:4      對象動態添加的屬性。               可訪問  1,3,4

//總結:
//     實例屬性:1,公有
//              2,私有
//              4,靜態
//     原型屬性:3,共享

//this定義的為特權屬性。全部可訪問
//var定義的為私有屬性。
//動態添加的屬性為公有屬性。不可訪問私有屬性

//實例對象指向的原型屬性為原型屬性。不可訪問私有屬性,優先級低於公有屬性

//實例屬性主要有公有屬性和特權屬性構成。均可被外部和原型屬性訪問。主要區別在於是否可訪問私有屬性
//原型屬性優先級低於實例屬性。可被外部訪問和實例屬性訪問(除私有屬性)


//-----------------此處為分割線-----------------------------
// 公有屬性:對象暴露給外部環境的屬性。也是對象的屬性。
// 私有屬性:對象內部的屬性,往往不可訪問.在構造函數層面上考慮才有意義。
// 靜態屬性:動態添加的屬性。也是對象的屬性。
// 共有屬性:所有構造函數生成的實例所共享的屬性。

       function User(){
//           公有屬性:每new一個User實例對象,都有的屬性。
//                    為實例屬性,所有實例的屬性不共享內存。
//                    外部可訪問。
           this.name='byronvis';
//           特權方法:每new一個User實例對象,都有的方法。
//                    為實例方法,所有實例的方法不共享內存。
//                    外部可訪問。
//                    可訪問公有屬性。
//                    可訪問私有屬性。
           this.sayName=function(){
            alert(this.name);
               alert(this.school);
            alert(age);//變量聲明會自動提前。
            alert(this.sex);
           };
//           私有屬性:外部不可訪問。
//                    僅對構造函數有意義,對於new的User實例對象無意義。
           var age=22;
//           私有方法:外部不可訪問。
//                    僅對構造函數有意義,對於new的User實例對象無意義。
           function sayAge(){
               alert(age);
           }
           sayAge();
       }
//       共有屬性: 共享內存。
       User.prototype.school='zky';
//       共有方法:可訪問公有屬性。
//                共享內存。
       User.prototype.saySchool=function(){
           alert(this.school);
           alert(this.name);
           alert(this.sex);
           alert(age);
       };
        var obj=new User();
//       靜態屬性:就是動態添加的實例屬性。
        obj.sex='man';
//       靜態方法:就是動態添加的實例方法。
        obj.saySex=function(){
            alert(this.sex);
            alert(this.name);
            alert(this.school);
            alert(age);
        };
//-----------------此處為分割線-----------------------------
////      證明this關鍵字定義的屬性和動態添加的屬性本質上一樣的,都可認為是實例對象的公有屬性。
//       驗證: this關鍵字定義的屬性訪問動態添加的屬性
//        obj.sayName();//true
//        驗證:動態添加的屬性訪問this關鍵字定義的屬性
//        obj.saySex();//true
//        驗證:公有屬性訪問私有屬性
//        obj.sayName();//true
           obj.saySex();//false
//        驗證:共享屬性訪問私有屬性
//        obj.saySchool();//false

   </script>
</head>
<body>
    測試文檔
</body>
</html>

小伙伴們是否看明白了,了解了實例屬性和原型屬性了嗎?本文講述的非常的詳細,推薦給大家,希望對小伙伴們能有所幫助

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved