JS修改属性的默认特性(属性描述符)
来源:互联网 发布:C语言下列叙述错误的是 编辑:程序博客网 时间:2024/05/21 10:45
数据属性,一共有四个属性描述符,分别为:
[[Configurable]],表示能否通过delete删除属性从而重新定义属性,是否能修改属性的特性,或者能否把属性修改为访问器属性。
[[Enumerable]],能否通过for-in循环返回属性。
[[Writable]],能否修改属性的值。
[[Value]],包含属性的值。使用对象字面量定义对象时, [[Configurable]]默认为true, [[Enumerable]]默认为true,[[Writable]]默认为true.
var person = { name: "Jack", age: 25, job: "Student", sayName: function() { alert(this.name); }}2、若要修改属性的描述符,使用方法Object.defineProperty();var person = {};Object.defineProperty(person,"name",{ value: "Jack"});var student = { age: 25}
3、读取属性的特性,defineOwnPropertyDescriptor()
1. 使用对象字面量创建的对象里的属性 Object.getOwnPropertyDescriptor(person,"name");//{value: "zhenglijing", writable: false, enumerable: false, configurable: false} 2. 使用defineProperty的属性 Object.getOwnPropertyDescriptor(person,"name");//{value: 25, writable: true, enumerable: true, configurable: true}
4、 1. 访问器属性,一共有四个属性描述符,分别为:
[[Configurable]],表示能否通过delete删除属性从而重新定义属性,是否能修改属性的特性,或者能否把属性修改为访问器属性。
[[Enumerable]],能否通过for-in循环返回属性。
[[Get]],读取属性时调用的函数。默认undefined
[[Set]],设置属性时调用的函数。默认undefined.
注意:访问器属性和数据属性不同的是,它的属性只能使用Object.defineProperty()定义。
//使用对象字面量定义一个对象var book = { _year: 2004,//_下划线表示只能通过对象方法访问的属性。 edition: 1};Object.defineProperty(book,"year",{ get: function() { return this._year; }, set: function(newYear) { if(newYear>2004) { this._year = newYear; this.edition += newYear-2004; } }})
4、定义多个属性,defineProperties()
book = {};//语法和Object.defineProperty()有些不同。Object.defineProperties(book,{ name: { value: "围城" }, _year: { value: 2004 }, year: { get: function() { return this._year; }, set: function(newYear) { if(newYear>2004) { this._year = newYear; } } }})
阅读全文
0 0
- JS修改属性的默认特性(属性描述符)
- JS属性特性(属性描述符)
- js 中对象属性特性的描述
- android默认的属性修改:
- 修改,获得设备描述表的属性
- js修改原型的属性
- js 对象系列之属性描述符
- Django ModelForm修改默认的控件属性
- 【js学习笔记-036】--属性的特性
- js 中对象属性的特性
- 【js学习笔记-036】--属性的特性
- JS修改火狐浏览器中元素的属性值时的变态特性
- js修改css属性
- js修改css属性
- 描述符属性
- 描述符属性
- JavaScript 属性描述符
- 属性描述符
- 算法与数据结构基础(二)排序基础2.插入排序
- hdu5459
- 用mycat做读写分离:基于 MySQL主从复制
- 开篇
- 文章标题
- JS修改属性的默认特性(属性描述符)
- 对设计模式的理解
- C# mvc 中把带 html标签的字符 当作 html标签 显示到页面
- struts2 文字过滤拦截器
- 深入浅出妙用 Javascript 中 apply、call、bind
- 关于最后
- LeetCode113. Path Sum II
- 通过OllyDbg调试windows窗口程序
- 【Spring笔记】2. XML装配Bean