关于在new Object()后,使用Object.defineProperty()修改了这个对象之后,有什么影响?

I'm so sorry.这篇文章竟然是我的疑问篇,这是今天在使用Object.defineProperty()方法的时候遇到的问题。

At first Object.defineProperty是为了解决我们在js中不能直接访问ECMA-262定义的数据属性和访问器属性,因为这些属性是

为了实现JavaScript引擎用的。

Qusetion one:

like the following:


brief summary:

Could you help me?

Question two:

var o  = new Object();
Object.defineProperty(o,"age",{//数据属性
  configurable:true,
  writable:true,//这行一定要显式定义为true,因为只要用了Object.defineProperty()则所有数据属性的值defaults false
  value:30
})
//o.age = 30;
Object.defineProperty(o,"visitAge",{//访问器属性
  get:function(){
    return this.age;
  },
  set:function(newValue){
    this.age = newValue;
  }
})
o.visitAge = 10;

console.log(o.age);//10 //上面的关键是将writable设置为true,如果是o.age = 30的形式,则不用显式定义writable:true
console.log(o.age);//30 //未将writable设置为true,则访问器属性无法将age=10

brief summary:

point one:理解对象在调用Object.defineProperty(o,"property",{datas or visitor}) 未显式申明时,其默认值是false。


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值