• 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

  • 相关阅读:
    IE, FireFox, Opera 浏览器支持CSS实现Alpha半透明的方法
    5个CSS3技术实现设计增强
    SQL Server 2005 中的分区表和索引
    推荐12款可用于前端开发的免费文本编辑器
    960 Grid System
    初识Byte
    在线制作网站
    sqlserver操作符篇 优化
    ASP.NET 异常处理
    Photoshop 隐藏的快捷键
  • 原文地址:https://www.cnblogs.com/IsDotNet/p/1501434.html
Copyright © 2020-2023  润新知