Object.defineproperty和Object.defineproperties的区别

今天突然看到了同学问我Object.defineproperty的用法,我们讨论了之后,我也乘机复习了Object.defineproperties。

共同点: 

        它们都是用来定义object的属性的,通过在对象的原型对象上定义,从而是我们能够通过js获得Object的新属性。

不同点:

        Object.defineproperty是每次只能定义对象的单个属性,Object.defineproperties每次能定义对象的的多个属性。

  话不多说,直接上代码:

 /* 定义一个初始对象 */
        let obj = {name:'zs',sex:'male'}
 /* Object.defineProperties修改对象多个属性用法 */
        Object.defineProperties(obj,{
            'age':{
                value:26,
                writable:true, /* 属性可以修改 */
                enumerable:true   /* 属性可以使用,如果不写都读取不到 */
            },
            'hobby':{
                value:['eat','sleep','play'],
                writable:true, /* 属性可以修改 */
                enumerable:true /* 属性可以使用 */
            }
        })
/* Object.defineProperty修改对象单个属性用法 */ 
        Object.defineProperty(obj,'friend',{
            value:'rose',
            enumerable:true,
            writable:true
        })
        /* 修改对象 */
             obj.age=30
    /* 为对象添加方法 */
            obj.sing = ()=>{
            console.log('唱歌');
        }

 以下是效果截图:

 这样我们就实现属性的添加了

不过在最后有一个问题就是我们通过定义一个对象,通过对象.属性也可以实现为对象添加属性,不知道这两者有什么区别?欢迎大家指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rised

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值