• javaScript 工作必知(八) 属性的特性 值、写、枚举、可配置


    属性的特性

        每个对象都拥有属性,属性具有哪些特性呢?

        1、属性具有值。

         2、属性是否是可写的。

               3、是否是可枚举的。

               4、是否是可配置的。

     

     "use strict";//使用严格模式
            var descriptor = Object.getOwnPropertyDescriptor({ x: 1 }, "x");//获取匿名对象的值
            alert("value:" + descriptor.value + "
     writeable:" + descriptor.writable + "
     enumberable:" + descriptor.enumerable + "
     configurable:" + descriptor.configurable);//value: 1 writeable:true enumberable:true,configurable:true
    
            var baseDescriptor = Object.getPrototypeOf({ x: 2 });
            for(var p in baseDescriptor)
            {
                alert(p);//内置属性不可被枚举。
            }
            var o = {};
            Object.defineProperty(o, "y", { value: 1, writable: true, enumberable: false, configurable: true });//设置属性的特性。
            var oDescriptor = Object.getOwnPropertyDescriptor(o, "y");
           
            Object.defineProperties(o, {
                x: { value: 3, writable: false, enumberable: true, configurable: true },
                z: { get: function () { return this.x + 1; }, enumerable: true, configurable: true }//get表示只读属性,set可设计写属性。
            });
            alert(o.y);
            alert("
     value:" + oDescriptor.value + " 
    writable:" + oDescriptor.writable + "
     enumberable:" + oDescriptor.enumerable + "
     configurable:" + oDescriptor.configurable);
            alert(o.z);
            o.x = 4;
            alert(o.z);
    

      

     属性的修改遵循以下规则:

      如果对象是不可扩展的,则尅编辑已有的自有属性,但不能给他添加新的属性。

      如果对象是不可配置的,则不能修改他的可配置性和可枚举性。

      如果存取器属性是不可配置的,则不能修改其getter和setter方法,也不能将他转换为数据属性。

      如果数据属性是不可配置的,则不能将它转换为存取器属性。

      如果数据属性是不可配置的,则不能将它的可写性从false修改为true,但可以从true 修改为false.

      如果数据属性是不可配置的且不可写的,则不能修改它的值,然而可配置但不可写属性的值是可以修改的。(实际上是先将他标记为可写的,然后修改他的值,最后转换为不可写的。

    summary

           属性,还需要继续研究才行。。。

  • 相关阅读:
    在CSS里加下面任何一行代码都可以解决图片之间的间隙
    MasterPage Toolbar
    图解虚拟机VMware服务自动启动
    WSUS完全部署
    DIV全屏覆盖网页
    大型架构.net平台篇(WEB层均衡负载nginx)
    组策略设置及导出导入方法[附上设置好的组策略]
    如何設定定時關機?
    gridview获取当前行索引的方法
    no suject
  • 原文地址:https://www.cnblogs.com/fandong90/p/5543653.html
Copyright © 2020-2023  润新知