javascript对象的属性

javascript的对象有两种属性:数据属性和访问器属性。

数据属性包含一个数据值的位置,在这个位置能够进行读写操作。数据属性有四个描述:
1、[[Configurable]],设定属性是否可配置,例如是否该可以被delete删除,是否可以重新定义属性等。默认值是true。
2、[[Eumerable]],设置属性是否可以通过for/in枚举,默认值是true。
3、[[Writable]],设置属性是否可写。默认值为true。
4、[[Value]].属性值。

直接在对象上定义的属性的前三个特征的值都为true,最后一个Value的值就是属性的值。


object.defineProptype()方法

object.defineProptype()方法可以用于配置属性的特征。这个方法接受三个参数,第一个 属性所在的对象,属性的名字和一个描述符对象。
例如:

object.defineProptype(person,'name',{
    writable:false,
    value:"luck"
});

当调用该方法,但不指定configuration.writable,enumerable 的属性的时候,这三个值都为false。

当设定configuration的值为false的时候,再次调用该方法设置configuration值,会抛出错误,因为此时是不可配置的。

object.defineProptype(person,'name',{
    configuration:false,
    value:"luck"
});

访问器属性不包含数据值,包含两个可选的函数:setter和getter。
getter用于读取访问器的属性,setter用于写入和处理属性,访问器属性有以下四个特征:
1、[[Configurable]],设定属性是否可配置,例如是否该可以被delete删除,是否可以重新定义属性等。默认值是true。
2、[[Eumerable]],设置属性是否可以通过for/in枚举,默认值是true。
3、[[Get]],读取属性时调用的函数。默认值为undefined。
4、[[Set],设置属性时调用的函数。默认值为undefined。

访问器属性不能直接定义,必须用object.defineProptype()方法。

object.defineProptype(book,'year',{
            get :function(){
            return this._year;}
            },
            set:function(newYear){
                this._year=newYear;
            });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值