博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript 理解对象--- 定义多个属性和读取属性的特性
阅读量:5794 次
发布时间:2019-06-18

本文共 1712 字,大约阅读时间需要 5 分钟。

一 定义多个属性

  ECMAScript5 定义了一个Object.defineProperties()方法,用于定义多个属性。此方法接受两个对象参数:

    第一个对象:要添加或修改其属性的对象

    第二个对象的属性与第一个对象的要添加或修改的属性一一对应 :

例如: var book ={};Object.defineProperties(book,{    _year:{             writable:true,             value :2004     },    edition:{             writable:true,             value :1     },    year : {             get :function(){                 return this._year;             },           set :function(value){                  if(value > 2004){                        this._year = value;                        this.edition += value -2004                   }           }    }});

支持Object.defineProperties()方法的浏览器有IE9+ Firefox+ Safari5+,Opera12+ 和 Chrome;

 

二 读取属性的特性

   ECMAScript5方法:Object.getOwnPropertyDescriptor()方法,可以取得给定属性的描述符,接受两个参数(属性所在对象 、 要读取其描述符的属性名称)

var book ={};Object.defineProperties(book,{    _year:{             value :2004     },    edition:{             value :1     },    year : {             get :function(){                 return this._year;             },           set :function(value){                  if(value > 2004){                        this._year = value;                        this.edition += value -2004                   }           }    }}); //数据属性var descirptor = Object.getOwnPropertyDescirptor(book,"_year");alert(descirptor.value);//2004alert(descriptor.configurable);//falsealert(typeof descriptor.get); // "undefined" //访问属性var descirptor = Object.getOwnPropertyDescirptor(book,"year");alert(descirptor.value);//2004alert(descriptor.configurable);//falsealert(typeof descriptor.get); // "function"

支持Object.getOwnPropertyDescriptor()方法的浏览器有IE9+ Firefox+ Safari5+,Opera12+ 和 Chrome;

 

转载于:https://www.cnblogs.com/wangshichuan/p/5881882.html

你可能感兴趣的文章
svn命令在linux下的使用
查看>>
MySQL主从同步相关-主从多久的延迟?
查看>>
Gradle之module间依赖版本同步
查看>>
一些kindle资源
查看>>
java springcloud版b2b2c社交电商spring cloud分布式微服务(十五)Springboot整合RabbitMQ...
查看>>
SpringCloud使用Prometheus监控(基于Eureka)
查看>>
10g手动创建数据库
查看>>
Linux—文件系统
查看>>
运用Loadrunner测试Mysql数据库性能
查看>>
Spring MVC EL表达式不能显示
查看>>
【致青春】我们挥霍时间的年代
查看>>
Windwos Server 2008 R2 DHCP服务
查看>>
SAS和SATA硬盘的区别
查看>>
现代程序设计 学生情况调查
查看>>
U盘安装linux后无法引导
查看>>
C# 矩阵作业
查看>>
俺的新书《Sencha Touch实战》终于出版了
查看>>
关于数据库查询时报“query block has incorrect number of result columns”
查看>>
li下的ul----多级列表
查看>>
UVa 11292 勇者斗恶龙(The Dragon of Loowater)
查看>>