javascript中的描述对象(Descriptor)
对象的每个属性都有一个描述对象(Descriptor),用来控制该属性的行为。Object.getOwnPropertyDescriptor方法可以获取该属性的描述对象。
获取对象中属性描述对象
Object.getOwnPropertyDescriptor(obj, propName)
参数:第一个参数是目标对象,第二个参数是目标对象的目标属性。
返回值:该属性描述对象
如:
const obj = {
item: 'hello',
msg:'hi'
}
Object.getOwnPropertyDescriptor(obj, 'item')
{
value: 'hello',
writable: true,
enumerable: true,
configurable: true
}
如:value表示值,enumerable表示是否可枚举
比如对象的通用方法toString(),数组的length属性,其描述对象的enumerable属性的都是false。
这就解决了我一个之前的一个疑问。遍历对象中的属性怎么不会循环出对象内置的属性方法。
获取对象中全部属性的属性描述对象
Object.getOwnPropertyDescriptors(obj)
参数:想要获取的对象
返回值: 描述对象集合
属性描述对象的定义
Object.defineProperty(obj, propName, descriptorObj)
参数:第一个参数目标对象,第二个参数是属性名,第三个参数是属性描述对象。
返回值: 修改后的对象
如:
const obj = Object.defineProperty({}, 'item', {
item: 'hello',
writable: true,
enumerable: true,
configurable: true
});
// 当然,这样定义只是为了定义描述对象。
// 直接
obj.item = hello // 最终也和上面一样
obj.item // "hello"
原文链接:https://www.cnblogs.com/lsAxy/p/12818972.html
javascript中的描述对象(Descriptor)的更多相关文章
- javascript中的描述对象(Descriptor)获取和定义随笔
最近再看了阮一峰的老师的ES6入门,发现一个有趣的东西,借此纪录以及整理下. 对象的每个属性都有一个描述对象(Descriptor),用来控制该属性的行为.Object.getOwnPropertyD ...
- JavaScript中的事件对象
JavaScript中的事件对象 JavaScript中的事件对象是非常重要的,恐怕是我们在项目中使用的最多的了.在触发DOM上的某个事件时,会产生一个事件对象event,这个对象中包含这所有与事件有 ...
- JavaScript中创建字典对象(dictionary)实例
这篇文章主要介绍了JavaScript中创建字典对象(dictionary)实例,本文直接给出了实现的源码,并给出了使用示例,需要的朋友可以参考下 对于JavaScript来说,其自身的Array对象 ...
- Javascript学习1 - Javascript中的类型对象
原文:Javascript学习1 - Javascript中的类型对象 1.1关于Numbers对象. 常用的方法:number.toString() 不用具体介绍,把数字转换为字符串,相应的还有一个 ...
- 简单使用JSON,JavaScript中创建 JSON 对象(一)
JSON:JavaScript 对象表示法(JavaScript Object Notation). JSON 是存储和交换文本信息的语法.类似 XML. JSON 比 XML 更小.更快,更易解析. ...
- JavaScript中的window对象
JavaScript中的window对象:http://www.cnblogs.com/kissdodog/archive/2013/01/01/2841464.html
- js:JavaScript中的ActiveXObject对象
JavaScript中的ActiveXObject对象作用: https://blog.csdn.net/pl1612127/article/details/77862174
- 详解javascript中的this对象
详解javascript中的this对象 前言 Javascript是一门基于对象的动态语言,也就是说,所有东西都是对象,一个很典型的例子就是函数也被视为普通的对象.Javascript可以通过一定的 ...
- javascript中如何获取对象名
javascript中如何获取对象名 一.总结 一句话总结:将对象传入参数,看参数是否为函数(js中的对象和函数是一个意思么(函数肯定是对象)),对象参数.name属性即可获得 //版本4 funct ...
随机推荐
- breakpad系列(1)——起步
原文来自breakpad目录中doc目录下的getting_started_with_breakpad文档,建议去看原文! 介绍 Breakpad是一个比Linux core机制更强大的.用于记录程序 ...
- 【SCOI2016】背单词
P3294[SCOI2016]背单词 [提示] 这道题大概是告诉我们,让我们用一堆n个单词安排顺序,如果当前位置为x,当前单词的后缀没在这堆单词出现过,代价就为x,这里的后缀是原意,但不算自己(不算本 ...
- IDEA文本编辑区的护眼绿豆沙色配置
第一步:打开IDEA -> File -> settings -> Editor -> Color Scheme -> General 第二步:找到右方Text -> ...
- helm部署mysql
如果您的kubernetes已有了helm,那么部署mysql的步骤可以进一步简化,那些原先需要自己动手配置的deployment和service都已集成在chart中,今天就来实战通过helm部署m ...
- matlab中figure创建图窗窗口
来源:https://ww2.mathworks.cn/help/matlab/ref/figure.html?searchHighlight=figure&s_tid=doc_srchtit ...
- 数字PLL,什么是数字PLL
来源:http://www.elecfans.com/baike/bandaoti/bandaotiqijian/20100323203306.html 数字PLL,什么是数字PLL 数字PLL PL ...
- SpringBoot整合Shiro+MD5+Salt+Redis实现认证和动态权限管理|前后端分离(下)----筑基后期
写在前面 在上一篇文章<SpringBoot整合Shiro+MD5+Salt+Redis实现认证和动态权限管理(上)----筑基中期>当中,我们初步实现了SpringBoot整合Shiro ...
- Python+Appium自动化测试(11)-location与size获取元素坐标
appium做app自动化测试过程中,有时需要获取控件元素的坐标进行滑动操作.appium中提供了location方法获取控件元素左上角的坐标,再通过size方法获取控件元素的宽高,就可以得到控件元素 ...
- 多测师讲解接口测试_F12中network里headers各项属性的含义——高级讲师肖sir
General部分: Request URL:资源的请求url # Request Method:HTTP方法 Status Code:响应状态码 200(状态码) OK 301 - 资源(网页等 ...
- JVM系列【6】GC与调优1
JVM系列笔记目录 虚拟机的基础概念 class文件结构 class文件加载过程 jvm内存模型 JVM常用指令 GC与调优 GC基础知识 什么是垃圾 没有任何引用指向的一个对象或多个对象(循环引 ...