Object.defineProperty() 和 Object.getOwnPropertyDescriptor()
2017-08-27 23:08
531 查看
//Object.defineProperty() 和 Object.getOwnPropertyDescriptor() //Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象。 let obj = {}; Object.defineProperty(obj,'prop1',{ value:'789', enumerable: true }); console.log(obj);//{ prop1: '789' } Object.defineProperties(obj,{ 'prop2':{ value:'123', enumerable:true }, 'prop3':{ value:'456', enumerable:true } }); console.log(obj);//{ prop1: '789', prop2: '123', prop3: '456' } //Object.getOwnPropertyDescriptor() 方法返回指定对象上一个自有属性对应的属性描述符 // 该方法允许对一个属性的描述进行检索。在 Javascript 中, 属性 由一个字符串类型的“名字”(name)和一个“属性描述符”(property descriptor)对象构成。更多关于属性描述符类型以及他们属性的信息可以查看:Object.defineProperty. /* 一个属性描述符是一个记录,由下面属性当中的某些组成的: value 该属性的值(仅针对数据属性描述符有效) writable 当且仅当属性的值可以被改变时为true。(仅针对数据属性描述有效) get 获取该属性的访问器函数(getter)。如果没有访问器, 该值为undefined。(仅针对包含访问器或设置器的属性描述有效) set 获取该属性的设置器函数(setter)。 如果没有设置器, 该值为undefined。(仅针对包含访问器或设置器的属性描述有效) configurable 当且仅当指定对象的属性描述可以被改变或者属性可被删除时,为true。 enumerable 当且仅当指定对象的属性可以被枚举出时,为 true。 */ const prop1 = Object.getOwnPropertyDescriptor(obj,'prop1'); console.log(prop1); /*输出指定属性的属性描述符 没有显示定义的属性描述符默认为 false { value: '789', writable: false, enumerable: true, configurable: false } */ const props = Object.getOwnPropertyDescriptors(obj); console.log(props); /*输出所有属性的属性描述符 { prop1: { value: '789', writable: false, enumerable: true, configurable: false }, prop2: { value: '123', writable: false, enumerable: true, configurable: false }, prop3: { value: '456', writable: false, enumerable: true, configurable: false } } */
相关文章推荐
- JS Object.getOwnPropertyDescriptor()和Object.defineProperty()
- 9. ES5 之 Object.defineProperty(obj, prop, descriptor)
- 面试题:(考察Object.defineProperty(obj,prop,descriptor) 的get方法)
- javascript中的Object.defineProperty()与getOwnPropertyNames ()方法
- javascript面向对象的程序设计之Object.getOwnPropertyDescriptor()
- Object.defineProperty(obj,prop,descriptor)使用
- Object.defineProperty 函数 (JavaScript)
- Object.defineProperty
- ECMAScript5 Object的新属性方法(包含Object.create()、Object.defineProperty()等)
- includes方法 使用 Object.defineProperty 扩展 ,解决不兼容问题
- Object.defineProperty 中的 writable 和 configurable 和 enumerable 的理解
- ES5 Object.defineProperties / Object.defineProperty 的使用
- JS的Object.defineProperty
- 小tips:JS之for in、Object.keys()和Object.getOwnPropertyNames()的区别
- JavaScript---Object.defineProperty()与两种属性描述符简介->数据\存取描述符
- 属性遍历:in操作符/Object.keys()/ Object.getOwnPropertyNames()
- JavaScript中in操作符(for..in)、Object.keys()和Object.getOwnPropertyNames()的区别
- Object.defineProperty 学习
- JS中的双向数据绑定及Object.defineProperty方法
- 理解Object.defineProperty的作用