• JavaScript对象 属性


    1、ES中的对象是完全动态的,这意味着,在程序执行的时候我们可以任意的添加,修改或删除对象的属性。

            var stu = { ID: 1 };
    
            //添加新属性
            stu.Name = 'ck';
    
            console.log(stu);  //{ID:1,Name:ck}
            alert(stu.ID+stu.Name);

    有些属性不能被修改——(只读属性、已删除属性或不可配置的属性)。

    2、ES5规范规定,静态对象不能扩展新的属性,并且它的属性页不能删除或者修改。他们是所谓的冻结对象,可以通过应用Object.freeze(o)方法得到。

            var stu = { ID: 1 };
    
            //冻结对象
            Object.freeze(stu);
            console.log(Object.isFrozen(stu));  //true
    
            //不能修改
            stu.ID = 3;
            //不能扩展
            stu.Name = 'ck';
            //不能删除
            delete stu.ID;

    3、在ES5规范里,也使用Object.preventExtensions(o)方法防止扩展,或者使用Object.defineProperty(o)方法来定义属性:

            var stu = { ID: 1 };
            Object.defineProperty(stu, "Name", {
                value: "ck",
                writable: false,  //只读
                configurable: false  //不可配置
            });
    
            //不能修改
            stu.Name = 'jxl';
            alert(stu.Name);   // ck
    
            //不能删除
            delete stu.Name;   //false
    
            //防治扩展
            Object.preventExtensions(stu);
            console.log(Object.isExtensible(stu));   // false
            //不能添加新属性
            stu.Age = 28;
    
            console.log(stu);  //{ID:1,Name='ck'}
  • 相关阅读:
    iptables防火墙操作
    磁盘配置
    软件包安装
    网络配置
    用户、组及权限控制
    常见的Linux操作
    Vmware下CentOS 7安装步骤
    Spark(十四)【SparkSQL集成Hive】
    Scala和Java的List集合互相转换
    Spark(十)【RDD的读取和保存】
  • 原文地址:https://www.cnblogs.com/ck168/p/5498264.html
Copyright © 2020-2023  润新知