【JavaScript】对象属性

JS 对象的可枚举性指的是对象的某些属性是否可以被 JSON.stringify()、 for…in 循环、Object.keys()、Object.values() 和 Object.entries() ⽅法枚举到。

每个对象属性都有⼀个名字和一个属性描述符,这个属性描述符⾥⾯包括了该属性的许多特性,如可枚举性、可写性、可配置性和值等。

默认情况下,使⽤字⾯量或Object()构造函数创建的对象的所有属性都是可枚举的,可以使⽤
Object.defineProperty或Object.defineProperties()来设置enumerable特性为false,设置其不
可枚举。

  • Object.defineProperty()作⽤:⽤来定义⼀个新的属性或者修改原有的属性
  • Object.defineProperties()作⽤:⽤来定义或修改多个属性

它们接收三个参数:1、obj对象;2、prop:要定义或修改的属性名称;3、descriptor:要定
义或修改的属性描述符 descriptor的属性描述符包括的特性有:

  1. value:属性的值,默认为undefined
  2. writable:属性是否可写,默认为false
  3. enumerable:属性是否可枚举,默认为false
  4. configurable:属性是否可配置,默认为false
  5. get:获取属性值的⽅法
  6. set:设置属性值的⽅法
var o = { a: 1, b: 2 };
o.c = 3;
Object.defineProperty(o, "d", {value: 4,enumerable: false,
});
console.log(o.d); // 4
for (var key in o) { console.log(o[key]) };
// 1 2 3
console.log(Object.keys(o)); //['a','b','c']
console.log(JSON.stringify(o)); //"{a:1,b:2,c:3}"

⾄于 for…in 循环和 Object.keys ⽅法的区别,在于前者包括对象继承⾃原型对象的属性,⽽后者只包括对象本身的属性。有些内置对象的属性是不可枚举的,例如 Object.prototype 上的属性,这些属性可以通过 Object.getOwnPropertyNames() ⽅法获取。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/49356.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大数据技术--实验01-Hadoop的安装与使用【实测可行】

使用下面表中的软件版本进行配置: 准备好后,按照下面的步骤进行配置。 配置VMware网络 在VMWare主界面,点击“编辑”>“虚拟网络编辑”菜单进入虚拟网卡参数设置界面。选择VMnet8条目,点击“NAT设置”按钮后可以看到我们的VM…

学习unity官方的网络插件Netcode【一】

对bool值的个人理解: IsOwner:本地网络对象 IsLocalPlayer:本地网络玩家,(本地网络玩家也是本地网络对象) using Unity.Netcode; using UnityEngine; //个人理解:通过Rpc完成了一次客户端给服务…

【React Hooks原理 - createContext、useContext】

概述 在前面React Hooks系列介绍中我们知道React为了更好的处理不同生命周期的特殊处理,除了useContext这个Hooks之外的其他Hooks都拆为了Mount、Update两个阶段,而useContext内部并没有区分都是通过调用readContext来获取上下文的,下面就来…

微信小程序删除滑块 SwiperCell 自动收起 Van weapp van-swipe-cell 滑块自动收起 点击页面也自动收起滑块

在当前页面整个 view 中 给页面绑定 点击事件bindtap"onSwipeCellPage"给 van-swipe-cell 组件设置 id (for循环可以添加 id"swip-cell-{{item.id}}" )van-swipe-cell 组件 添加属性 当用户打开滑块时触发 bind:open"swiperCel…

Ajax原理-XMLHttpRequest、Promise以及封装简易的axios函数

这里写目录标题 一级目录二级目录三级目录 一、Ajax原理-XMLHttpRequest对象1.步骤 二、XMLHttpRequest-查询参数1.定义2.语法 二、XMLHttpRequest-数据提交1.需求2.核心 三、Promise1.定义2.好处3.三种状态 四、封装简易的axios1.需求:2.封装axios函数获取数据3.封…

使用UDP套接字编程详解【C语言】

UDP(User Datagram Protocol,用户数据报协议)是一种面向无连接的传输层协议,用于在计算机网络上发送数据。它与 TCP(Transmission Control Protocol,传输控制协议)相比具有轻量、高效的特点&…

英语(二)-我的学习方式

章节章节汇总我的学习方式历年真题作文&范文 目录 1、背单词 2、学语法 3、做真题 4、胶囊助学计划 写在最前:我是零基础,初二就听天书的那种。 本专栏持续更新学习资料 1、背单词 单词是基础,一定要背单词!考纲要求要…

云动态摘要 2024-07-23

给您带来云厂商的最新动态,最新产品资讯和最新优惠更新。 最新优惠与活动 数据库上云优选 阿里云 2024-07-04 RDS、PolarDB、Redis、MongoDB 全系产品新用户低至首年6折起! [免费体验]智能助手ChatBI上线 腾讯云 2024-07-02 基于混元大模型打造,可通过对话方式生成可视化…

中文分词库 jieba 详细使用方法与案例演示

1 前言 jieba 是一个非常流行的中文分词库,具有高效、准确分词的效果。 它支持3种分词模式: 精确模式全模式搜索引擎模式 jieba0.42.1测试环境:python3.10.9 2 三种模式 2.1 精确模式 适应场景:文本分析。 功能&#xff1…

qt设置过滤器

1.创建事件过滤器类,在主窗口中安装事件过滤器 class PasteFilter : public QObject {Q_OBJECTpublic:PasteFilter(QObject *parent nullptr) : QObject(parent) {}protected:bool eventFilter(QObject *obj, QEvent *event) override {if (event->type() QEv…

【Zotero插件】Zotero Tag为文献设置阅读状态 win11下相关设置

【Zotero插件设置】Zotero Tag为文献设置阅读状态 win11下相关设置 1.安装Zotero Tag1.1安装1.2配置1.3 win11的相关设置1.3.1 字体安装 参考教程 2.支持排序的标注参考教程 1.安装Zotero Tag 1.1安装 Zotero Tag插件下载链接安装方法:Zotero–》工具–》附加组件…

googleTest 源码主线框架性分析——TDD 01

TDD,测试驱动开发,英文全称Test-Driven Development,简称TDD,是一种不同于传统软件开发流程的新型的开发方法。它要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推…

苹果和乔布斯的传奇故事,从车库创业到万亿市值巨头

苹果公司的品牌故事,就像一部充满创新、挑战与辉煌的科幻大片,让人目不暇接。 故事始于1976年,那时,年轻的史蒂夫乔布斯与斯蒂夫沃兹尼亚克在加州的一个简陋车库里,用他们的热情和智慧,捣鼓出了世界上第一…

python学习之闭包与装饰器

一、闭包 闭包允许一个函数访问并操作函数外部的变量(即父级作用域中的变量),即使在该函数外部执行。 特性: (1)外部函数嵌套内部函数。 (2)外部函数可以返回内部函数。 (3)内部函数可以访问外部函数的局部变量。 def out()…

《昇思 25 天学习打卡营第 18 天 | 扩散模型(Diffusion Models) 》

《昇思 25 天学习打卡营第 18 天 | 扩散模型(Diffusion Models) 》 活动地址:https://xihe.mindspore.cn/events/mindspore-training-camp 签名:Sam9029 扩散模型(Diffusion Models) 扩散模型概述 扩散模…

linux中使用docker安装mongodb

随着容器的普及,越来越多服务都喜欢跑在容器中,并且安装也很方便快捷,接下来一起看下linux中使用docker来安装mongodb吧! 1.首先安装docker; 使用Yum 进行安装,我安装docker比较喜欢参考阿里云中的安装步骤…

通过泛型+函数式编程封装成通用解决方案|缓存穿透、缓存击穿,缓存雪崩

缓存更新方法封装 用到了泛型、函数式编程。 使用函数式编程是因为我们这个是一个通用的工具,使用泛型(泛型(Generics) 允许我们定义类、接口和方法,可以使用不同类型的参数进行操作)可以实现数据类型的通…

Mem0 - 个人 AI 的内存层

文章目录 一、关于 Mem0核心功能🔑路线图 🗺️常见用例Mem0与RAG有何不同? 二、快速入门 🚀1、安装2、基本用法(开源)3、高级用法🔧4、大模型支持 三、MultiOn1、概览2、设置和配置4、将记忆添加…

鸿蒙仓颉语言【模块module】

module 模块 模块配置文件,这里指项目的modules.json 文件,用于描述代码项目的基础元属性。 {"name": "file name", //当前项目的名称"description": "项目描述", //项目描述"version": "1.0…

人工智能与机器学习原理精解【4】

文章目录 马尔科夫过程论要点理论基础σ代数定义性质应用例子总结 马尔可夫过程概述一、马尔可夫过程的原理二、马尔可夫过程的算法过程三、具体例子 马尔可夫链的状态转移概率矩阵一、确定马尔可夫链的状态空间二、收集状态转移数据三、计算转移频率四、构建状态转移概率矩阵示…