关于在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。