javascript 理解对象--- 定义多个属性和读取属性的特性

本文介绍ECMAScript5中使用Object.defineProperties()定义多个属性的方法及Object.getOwnPropertyDescriptor()读取属性特性的用法。通过示例展示了如何为对象定义包括getter和setter在内的各种属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 定义多个属性

  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);//2004 alert(descriptor.configurable);//false alert(typeof descriptor.get); // "undefined"
//访问属性 var descirptor = Object.getOwnPropertyDescirptor(book,"year"); alert(descirptor.value);//2004 alert(descriptor.configurable);//false alert(typeof descriptor.get); // "function"

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

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值