.configurable:可配执行 .enumerble:枚举性 .writable:可读写性 .value:数据值

configurable:控制属性能否被删除,只有当属性的configurable特性的值为true时,该属性才能够被删除。

默认值为false,即不可删除)

var person = {};

Object.defineProperty(person,"name",{

configurable:false,//不可删除

value:"zhangsan"

})

//将name属性删除

delete person。name;

console.log(person.name);//zhangsan

Object.defineProperty(person,"age",{

configurable:true,//可删除

value:20

})

//将age属性删除

delete person.age;

cosole.log(perso.age);//undefined

//重新定义age属性

person.age = 30;

console.log(person.age);//30

enumerable:控制属性能否被枚举(遍历)。只有当属性的enumrble特性的值为true时,该属性才会出现在对象的枚举属性中。(默认值为false,即不可枚举)

var person = {};

Object.defineProperty(person,"name",{

enumerable:false,//不可枚举

value:"zhangsan"

})

Object.defineProperty(person,"age",{

enumerable:true,//不可枚举

value:20

})

for(let item in person){

console.log(item);//age

}

writable:控制属性能否被修改,只有当属性的writable特性的值为true时,该属性才能够通过赋值运算对属性值进行修改。(默认值为false,即不可修改)

var person = {};

Object.defineProperty(person,"name",{

writable:false,//不可修改

value:"zhangsan"

})

person.name = "lisi";

console.log(person.name);//zhangsan

 

Object.defineProperty(person,"age",{

writable:true,//可修改

value:20

})

person.age=30;

console.log(person.age);//30

 

value:设置属性对应的值。可以是任何有效的javaScript值(数值、对象、函数等)。默认值为undefined。

)

 

posted @ 2017-10-20 22:44  林水  阅读(378)  评论(0编辑  收藏  举报