0

0

JavaScript对象属性的动态添加与删除操作方法细节

舞姬之光

舞姬之光

发布时间:2026-03-12 23:11:31

|

509人浏览过

|

来源于php中文网

原创

JavaScript对象属性可动态增删,点号语法适用于合法标识符,方括号支持动态键名;delete删除自身可配置属性,in检查原型链存在性,hasOwnProperty或Object.hasOwn判断自身属性。

javascript对象属性的动态添加与删除操作方法细节

JavaScript对象的属性可以随时动态添加或删除,这是其灵活性的重要体现。关键在于理解不同操作方式的适用场景、潜在限制以及底层机制。

使用点号和方括号添加属性

添加属性最常用的方式是赋值操作,但语法选择会影响行为:

  • 点号语法(obj.prop = value):仅适用于属性名是合法标识符(如 nameuserAge),且在编写时已知;不支持变量或含特殊字符的键名。
  • 方括号语法(obj["prop"] = value):支持动态键名,可传入字符串、变量甚至表达式,例如 obj[myKey]obj["first-name"];是实现“运行时确定属性名”的唯一可靠方式。

用 delete 操作符安全删除属性

delete obj.propdelete obj["prop"] 可移除对象自身的可配置属性:

  • 删除成功返回 true,无论属性是否存在(但对不可配置属性或原型链上的属性,可能静默失败或抛错,取决于严格模式)。
  • 删除后,in 运算符不再识别该属性,obj.prop 返回 undefined,但不会影响原型上同名属性的访问。
  • 注意:delete 不释放内存,也不触发垃圾回收;它只是断开属性与对象的关联。

检查属性存在性与是否为自身属性

判断一个属性能否被安全操作,需区分“是否存在”和“是否属于对象自身”:

Tago AI
Tago AI

AI生成带货视频,专为电商卖货而生

下载

立即学习Java免费学习笔记(深入)”;

  • "prop" in obj:检查对象及其原型链中是否存在该属性。
  • obj.hasOwnProperty("prop"):仅检查对象自身是否拥有该属性(不查原型),是判断能否被 delete 的前提。
  • Object.hasOwn(obj, "prop")(ES2022+):更现代、更安全的替代方案,避免了 hasOwnProperty 被覆盖的风险。

批量操作与不可变场景的处理技巧

实际开发中常需批量增删或避免意外修改:

  • 批量添加可用 Object.assign(obj, { a: 1, b: 2 }) 或展开运算符 { ...obj, c: 3 }(后者生成新对象)。
  • 批量删除推荐使用 Object.keys(obj).forEach(key => delete obj[key]),但注意遍历时修改可能引发意外;更稳妥的是先收集待删键名再统一删除。
  • 若对象已被 Object.freeze()Object.seal(),则无法添加/删除属性(严格模式下会报错),此时应改用解构+新建对象的方式模拟变更。

不复杂但容易忽略细节。掌握这些方法,就能在运行时精准控制对象结构。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1567

2023.10.24

Go语言中的运算符有哪些
Go语言中的运算符有哪些

Go语言中的运算符有:1、加法运算符;2、减法运算符;3、乘法运算符;4、除法运算符;5、取余运算符;6、比较运算符;7、位运算符;8、按位与运算符;9、按位或运算符;10、按位异或运算符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

241

2024.02.23

php三元运算符用法
php三元运算符用法

本专题整合了php三元运算符相关教程,阅读专题下面的文章了解更多详细内容。

150

2025.10.17

php中foreach用法
php中foreach用法

本专题整合了php中foreach用法的相关介绍,阅读专题下面的文章了解更多详细教程。

267

2025.12.04

mysql标识符无效错误怎么解决
mysql标识符无效错误怎么解决

mysql标识符无效错误的解决办法:1、检查标识符是否被其他表或数据库使用;2、检查标识符是否包含特殊字符;3、使用引号包裹标识符;4、使用反引号包裹标识符;5、检查MySQL的配置文件等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

210

2023.12.04

Python标识符有哪些
Python标识符有哪些

Python标识符有变量标识符、函数标识符、类标识符、模块标识符、下划线开头的标识符、双下划线开头、双下划线结尾的标识符、整型标识符、浮点型标识符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

322

2024.02.23

java标识符合集
java标识符合集

本专题整合了java标识符相关内容,想了解更多详细内容,请阅读下面的文章。

292

2025.06.11

c++标识符介绍
c++标识符介绍

本专题整合了c++标识符相关内容,阅读专题下面的文章了解更多详细内容。

178

2025.08.07

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

76

2026.03.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
React 教程
React 教程

共58课时 | 6万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 3.4万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号