• JavaScript 属性和方法的类型


    JavaScript里,对象的方法和属性支持4种不同的类型

    1.私有类型
       对外界完全不具有访问性

    function MyClass(){
       var elements = []; //私有成员,在对象外无法访问
        elements = Array.apply(elements, arguments);
    }
       只有通过特定的getter和setter才能访问
     

    2.动态公有类型
      外界可以访问,每个对象实例持有一个副本,它们之间不会相互影响

    function MyClass(){
       var elements = []; //私有成员,在对象外无法访问 
    elements = Array.apply(elements, arguments);
    //公有属性,可以通过“.”运算符或下标来访问
    //this.length是私有成员elements是的length属性的getter
        this.length = {
            valueOf: function(){return elements.length;},
            toString: function(){return elements.length;}
        }
    }
    

    3.静态公有类型
       也叫原型属性,它的特点是所有对象实例共享唯一副本,对它的改写会相互影响

    MyClass.prototype.x = 20; //原型属性

    4.类属性
       作为类型的属性,而不是对象实例的属性,在没有构造对象时可以访问

    MyClass.y = 30; //类属性
    

    例子:

    <html>
    <head></head>
    <body>  
    <script language="javascript" type="text/javascript">  
    <!--
        function dwn(s)
        {
            document.write(s + "<br/>");
        }
        function MyClass()
        {
            var p = 100;  //private property; 私有属性
            this.x = 10;  //dynamic public property 动态公有属性
        }
        MyClass.prototype.y = 20; // 原型属性
        MyClass.z = 30;  //static property //类属性
    
        var a = new MyClass();
        dwn(a.p);  //undefined 私有属性对象无法访问到
        dwn(a.x);   //10  公有属性
        dwn(a.y);   //20  公有属性
        a.x = 20;
        a.y = 40;
        dwn(a.x);    //20  
        dwn(a.y);    //40  //动态公有属性y覆盖了原型属性y
        delete(a.x);
        delete(a.y);
        dwn(a.x);    //undefined  动态公有属性x被删除后不存在
        dwn(a.y);    //20  动态公有属性y被删除后还原为原型属性y
        dwn(a.z);    //undefined 类属性无法通过对象访问
        dwn(MyClass.z);  //30 类属性应该通过类访问
    -->
    </script>  
    </body>   
    </html>
        结果:  

        undefined
        10
        20
        20
        40
        undefined
        20
        undefined
        30

  • 相关阅读:
    MPI linux Ubuntu cluster 集群
    python cython c 性能对比
    TCAM CAM 说明 原理 结构 Verilog 硬件实现
    verilog 计算机网络 仿真 激励 pcap
    libtrace 安装 使用 修改
    Dream Spark ------spark on yarn ,yarn的配置
    Dream_Spark-----Spark 定制版:005~贯通Spark Streaming流计算框架的运行源码
    Dream_Spark-----Spark 定制版:003~Spark Streaming(三)
    Dream_Spark-----Spark 定制版:004~Spark Streaming事务处理彻底掌握
    Dream_Spark定制第二课
  • 原文地址:https://www.cnblogs.com/IsDotNet/p/1501434.html
Copyright © 2020-2023  润新知