js对象理解----属性类型,读取属性特性
2019-07-13 16:52
309 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Glichi/article/details/95765395
属性类型
数据属性
- Configurable:能否通过delete删除属性从而重新定义属性;能否修改,或者能否把属性修改为访问器属性
- Enumberable:能否通过for-in循环返回属性
- Writable:能否修改属性的值
- Value:包含这个属性的数据
直接在对象上定义属性,默认值都为true
修改默认属性的方法:
Object.defineProperty()
在调用Object.defineProperty(),如果不指定,Configurable,Enumberable,Writable默认值都为false
var person={}; Object.defineProperty( person,"name",{ writable:false, value"Nack" } ); alert(person.name); //Nack person.name="Grey"; alert(person.name); //Nack
访问器属性
- Configurable:能否通过delete删除属性从而重新定义属性;能否修改,或者能否把属性修改为访问器属性
- Enumberable:能否通过for-in循环返回属性
- Get:读取属性是调用的函数,默认值:undefined
- Set:写入,默认值:undefined
var book={ _year:2004, edition:1 }; Object.defineProperty(book,"year",{ get:function(){ return this._year; }, set:function(newValue){ if(newValue>2004){ this._year=newValue; this.edition+=newValue-2004; } } }); book.year=2005; alert(book.edition); //2
定义多个属性:Object.defineProperties()
读取属性特性
Object.getOwnPropertyDescription()
接受两个参数:属性所在的对象,要读取其描述符的属性名称
var descriptor=Object.getOwnPropertyDescriptor(book,"_year"); alert(descriptor.value); alert(descriptor.configurable);
相关文章推荐
- 面向对象设计-----属性类型 读取属性特性
- JS--我发现,原来你是这样的JS:面向对象编程OOP[1]--(理解对象和对象属性类型)
- javascript 理解对象--- 定义多个属性和读取属性的特性
- js学习笔记 Function类型属性的理解
- JavaScript学习10 JS数据类型、强制类型转换和对象属性
- js中的面向对象程序设计(1)-对象和属性的类型
- JS面向对象特性和值类型与复合类型
- C# 3.0 新特性 学习(一):隐式类型化本地变量、自动属性、初始化器(对象初始化器和集合初始化器)
- js 中对象属性特性2
- js对象属性类型
- 《你不知道的JavaScript》:js对象的属性特性和枚举深入
- JavaScript学习点滴—js对象的四种类型的属性、方法的访问
- javascript 理解对象--- 属性类型
- JS中的属性类型理解
- C# 匿名类型 对象 转换成 其他 匿名类对象(具有 相同特性值 的 属性 之间的赋值)
- javascript中的对象属性类型与特性总结
- 循环读取时 JS 对象属性的顺序遵循怎样的规则?
- 面向对象的程序设计——(一)理解对象的属性以及属性的特性
- javascript自学之路(四)————js对象类型之prototype属性的探索
- js 对象类型 (对象的属性 ,对象的方法) this 关键字