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

首頁 > 編程 > JavaScript > 正文

js實例屬性和原型屬性示例詳解

2019-11-20 13:53:41
字體:
來源:轉載
供稿:網友

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

復制代碼 代碼如下:

<!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定義的為私有屬性。
//動態添加的屬性為公有屬性。不可訪問私有屬性

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

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


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

       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>

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 景德镇市| 萨迦县| 安新县| 乐平市| 蒙阴县| 乐都县| 益阳市| 宜昌市| 潼南县| 门源| 福建省| 习水县| 宝坻区| 万宁市| 肇州县| 黄石市| 五莲县| 保康县| 江都市| 山东| 仪陇县| 确山县| 尚志市| 阜新市| 亚东县| 射阳县| 奉新县| 辉县市| 聂荣县| 景宁| 武川县| 崇礼县| 绥芬河市| 阳高县| 鄂托克前旗| 东辽县| 徐汇区| 绥阳县| 杂多县| 冀州市| 汉源县|