object.defineproperty方法

object.defineproperty

1.给对象添加age属性且值为18

Object.defineProperty(person, 'age',{value:18}

2.控制属性是否可以枚举,也就是该属性是否可以被遍历,默认值为false

enumerable:true

3.控制属性的值是否可以被修改,默认值为false

writable:true

4.控制属性是否可以被删除,默认值是false

configurable:true

5.当有人读取person的age属性时,get函数(getter)就会被调用,且返回值就是age的值.

get(){console.log('读取age属性了'); return number}

6.当有人修改person的age属性时,set函数(setter)就会被调用,且会受到修改的具体值.

set(value) { console.log('有人修改age属性且值是', value); number = value }

例子

        
        let number = 18
        let person = {
            name: 'zs',
            sex: '男'
        }

        // 给person对象添加属性age=18,但是该属性是不可遍历的,要想可以遍历添加属性enumerable:true
        Object.defineProperty(person, 'age', {
            // value:18,
            // enumerable:true,//控制属性是否可以枚举,默认值是false
            // writable:true, //控制属性的值是否可以被修改,默认值是false
            // configurable:true, //控制属性是否可以被删除,默认值是false

            // 当有人读取person的age属性时,get函数(getter)就会被调用,且返回值就是age的值
            get() {
                console.log('读取age属性了');
                return number
            },
            // 当有人修改person的age属性时,set函数(setter)就会被调用,且会受到修改的具体值
            set(value) {
                console.log('有人修改age属性且值是', value);
                number = value
            }

        })

        console.log(person);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值