• 6.1.3 读取属性的特性


      使用ECMAScript5的Object.getOwnPropertyDescriptor()方法,可以取得给定属性的描述符。这个方法接收两个参数:属性所在的对象和要读取其描述符的属性名称。返回值是一个对象,如果是访问器属性,这个对象的属性有configurable、enumerable、get和set;如果是数据属性,这个对象的属性有configurable、enumerable、writable和value。例如:

    var book = {};
    
    Object.defineProperties(book,{
        _year:{
            value:2004
        },
        
        edition:{
            value:1
        },
    
        year:{
            get:function(){
                return this._year;
            },
    
             set:function(newValue){
                if(newValue>2004){
                    this._year = newValue;
                    this.edition += newValue - 2004;
                }
            }
        }
    });
    
    var descriptor = Object.getOwnPropertyDescriptor(book,"_year");
    alert(descriptor.value);//2004
    alert(descriptor.configurable);//false
    alert(typeof descriptor.get);//"undefined"
    
    var descriptor = Object.getOwnPropertyDescriptor(book,"year");
    alert(descriptor.value);//undefined
    alert(descriptor.enumerable);//false
    alert(typeof descriptor.get);//"function"
    

      对于数据属性_year,value等于最初的值,configurable是false,而get等于undefined。对于访问器属性year,value等于undefined,enumerable是false,而get是一个指向getter函数的指针。

      在JavaScript中,可以针对任何对象,包括DOM和BOM对象,使用Object.getOwnPropertyDescriptor()方法。支持这个方法的浏览器有IE9+、FF4+、Safari5+、Opera12+和Chrome。

  • 相关阅读:
    Json的序列化与反序列化
    RelativeSource设定绑定方向
    Java导出Excel工具类
    CentOS配置ssh免密码登录
    CentOS为用户增加root权限
    CentOS安装RabbitMQ步骤
    CentOS配置主机名和主机映射
    CentOS配置静态IP
    Java执行系统命令工具类(JDK自带功能)
    Linux定时任务
  • 原文地址:https://www.cnblogs.com/yxlove/p/4559116.html
Copyright © 2020-2023  润新知