[Object]面向对象编程(高程版)(0)属性和方法

zccst转载+原创

Js代码  收藏代码
    1. function Person(){  
    2.      var private_name = "小明"; //私有属性  
    3.      var private_age = 10;      //私有属性  
    4.      this.privilege_name = "小红"; //特权属性  
    5.      this.privilege_age = 9;       //特权属性  
    6. }  
    7.   
    8. Person.prototype.public_name = "小芳";  //公有属性  
    9. Person.prototype.public_age = 8;        //公有属性  
    10. Person.static_name = "小李"; //类静态属性  
    11. Person.static_age = 7;       //类静态属性  
    12.   
    13. var pp = new Person();  
    14. pp.name = '小王'; //对象静态属性  
    15. pp.age = 6;       //对象静态属性  
    16.   
    17.   
    18.   
    19. function Person(){  
    20.     var private_name = '私有属性';  
    21.     var private_age = 10;      
    22.     this.privilege_name = '特权属性';   
    23.     this.privilege_age = 9;   
    24.    
    25.     //定义一个特权方法  
    26.     this.showPrivilegeName = function(){  
    27.     console.log(private_name);        //输出:"私有属性"。说明私有属性可以在特权方法中访问.  
    28.     console.log(this.privilege_name );//输出:"特权属性"。说明特权属性可以在特权方法中访问  
    29.     console.log(this.public_name);    //输出:"公有属性"。说明共有属性可以在特权方法中访问  
    30.     console.log(Person.static_name);  //输出:"类静态属性"。说明类的静态属性可以在特权方法中访问  
    31.   }  
    32. }  
    33. Person.prototype.public_name = '公有属性';  
    34. Person.prototype.public_age = 8;  
    35. Person.static_name = '类静态属性';  
    36. Person.static_age = 7;  
    37.   
    38.   
    39. //实例化对象  
    40. var pp = new Person();  
    41. pp.name = '小王';         
    42. pp.age = 6;  
    43.    
    44. //定义一个原型方法  
    45. Person.prototype.showName = function(){  
    46.   //console.log(private_name);        //undefined.说明私有属性不能在原型方法中访问.  
    47.   console.log(this.privilege_name );  //输出:"特权属性"。说明特权属性可以在原型方法中访问  
    48.   console.log(this.public_name);      //输出:"公有属性"。说明共有属性可以在原型方法中访问  
    49.   console.log(Person.static_name);    //输出:"类静态属性"。说明类的静态属性可以在原型方法中访问  
    50. }     
    51.    
    52. //pp.showPrivilegeName();  
    53.   
    54. //pp.showName();  
    55.   
    56. console.log(pp.private_name);         //undefined 私有属性不能在实例化的对象中访问   
    57. console.log(pp.privilege_name );      //输出:"特权属性"。说明特权属性可以在原型方法中访问  
    58. console.log(pp.public_name);          //输出:"公有属性"。说明共有属性可以在原型方法中访问  
    59. console.log(Person.static_name);      //输出:"类静态属性"。说明类的静态属性可以在原型方法中访问  
    60. console.log(pp.name);                 //输出:"小王"。说明实例对象的静态属性可以在原型方法中访问 
原文地址:https://www.cnblogs.com/shsgl/p/4289886.html