js Object的属性 Configurable,Enumerable,Writable,Value,Getter,Setter
来源:互联网 发布:古罗马怎么灭亡的 知乎 编辑:程序博客网 时间:2024/04/28 22:23
对象的数据属性
Configurable,Enumerable,Writable,Value
var person = {}Object.defineProperty(person,'name',{ configurable:false,//能否使用delete、能否需改属性特性、或能否修改访问器属性、,false为不可重新定义,默认值为true enumerable:false,//对象属性是否可通过for-in循环,flase为不可循环,默认值为true writable:false,//对象属性是否可修改,flase为不可修改,默认值为true value:'xiaoming' //对象属性的默认值,默认值为undefined});//valueconsole.log(person);//xiaoming,默认value//writableperson.name="qiang";console.log(person);//xiaoming,不可修改value//enumerablefor(var i in person){ console.log(person[i]) //无结果,不可循环}//configurabledelete person.nameconsole.log(person.name)//xiaoming,不可删除Object.defineProperty(person,'name',{ configurable:true //不可修改,将抛出错误});
访问器属性
getter,setter
var book = { _year: 2004,//属性前面加_,代表属性只能通过对象方法访问 edition: 0}Object.defineProperty(book,'year',{ get: function(){ return this._year; }, set: function(newValue){ if(newValue > 2004){ this._year = newValue; this.edition += newValue - 2004 } }});console.log(book.year)//2004book.year = 2006;console.log(book.year)//2006console.log(book.edition)//2
定义多个属性
Object.defineProperties
var book = {}; Object.defineProperties(book, { _year: { value:2004, writable:true }, edition: { value: 0, writable:true }, year: { get: function() { return this._year; }, set: function(newValue) { if (newValue > 2004) { this._year = newValue; this.edition += newValue - 2004 } } } }); console.log(book.year) //2004 book.year = 2006; console.log(book.year) //2006 console.log(book.edition) //2
读取属性
var book = {}; Object.defineProperties(book, { _year: { value:2004, writable:true }, edition: { value: 0, writable:true }, year: { get: function() { return this._year; }, set: function(newValue) { if (newValue > 2004) { this._year = newValue; this.edition += newValue - 2004 } } } }); console.log(book.year) //2004 book.year = 2006; console.log(book.year) //2006 console.log(book.edition) //2 //读取属性 var descriptor__year = Object.getOwnPropertyDescriptor(book,'_year'); var descriptor_year = Object.getOwnPropertyDescriptor(book,'year');
console.log(descriptor__year )
console.log(descriptor_year )
1 0
- js Object的属性 Configurable,Enumerable,Writable,Value,Getter,Setter
- 【js对象属性的getter和setter】
- js对象属性的getter和setter
- JS 对象的访问器属性setter getter函数
- JS的getter和setter
- js 定义属性 以及 getter 和 setter
- scala属性的getter和setter方法
- property属性的setter、getter方法
- JavaScript对象属性的getter和setter
- 属性getter和setter
- 属性getter和setter
- 有关js 的 defineProperty函数 getter setter
- js根据属性动态生成getter、setter方法
- 【js学习笔记-035】--属性getter和setter
- get set操作对象属性(getter,setter)js
- Object-C @property使用指定的setter和getter
- 属性和setter以及getter
- Getter / Setter 的滥用
- QDAC库的Tqjson用法
- 平面的投影变换(4)——利用虚圆点进行相似性校正
- C语言随笔_fopen
- Java学习笔记:图解Access Control Modifier
- 远程调试Linux下tomcat应用
- js Object的属性 Configurable,Enumerable,Writable,Value,Getter,Setter
- [php] wordpress视频教程高清免费下载
- 51单片机:独立键盘实现音乐简谱
- Android消息机制
- IP协议:IP数据报解析以及IP数据传输
- 配置文件读写案例
- 面试题1----把字符串转换成整数
- pip 安装 和 pip.ini 配置
- 有没有最好的学习Angularjs2的视频入门体验?