javascript高级程序设计笔记2-类属性设置

来源:互联网 发布:风速打印软件下载 编辑:程序博客网 时间:2024/06/06 20:52

对象属性分为数据属性和访问器属性,用[[properties]]表示,可以理解为属性的属性

1.数据属性

数据属性可以通过数据直接访问和修改
1.[[Configurable]] :
表示能否通过 delete 删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为访问器属性。属于直接在对象上定义的属性,它们的这个特性默认值为 true 。
2.[[Enumerable]] :
表示能否通过 for-in 循环返回属性。属于直接在对象上定义的属性,它们的这个特性默认值为 true 。
3.[[Writable]] :
表示能否修改属性的值。属于直接在对象上定义的属性,它们的这个特性默认值为 true 。
4.[[Value]] :
包含这个属性的数据值。读取属性值的时候,从这个位置读;写入属性值的时候,把新值保存在这个位置。这个特性的默认值为 undefined 。
//测试value和writablevar person = {};Object.defineProperty(person,"name",{  writable:false,  value:"feng"});console.log(person.name);person.name = "wang"console.log(person.name);person.age = 11;console.log(person.age);person.age = 22;console.log(person.age);

2.访问器属性

1[[Configurable]] :
 表示能否通过 delete 删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为数据属性。对于直接在对象上定义的属性,这个特性的默认值为true 。
2[[Enumerable]] :
表示能否通过 for-in 循环返回属性。对于直接在对象上定义的属性,这个特性的默认值为 true 。
3[[Get]] :
在读取属性时调用的函数。默认值为 undefined 。
4[[Set]] :
在写入属性时调用的函数。默认值为 undefined 。