JavaScript 对象添加属性的两种动态方法

作者:半夏

时间:2026-10-25

浏览:247

本文介绍在JavaScript中向对象动态添加属性的两种常用方法。首先讲解使用Object.assign()合并对象的技术要点,包括参数顺序和返回值处理。随后针对动态渲染场景,演示如何通过for...of和for...in遍历数组并添加自定义标记属性,帮助开发者实现如鼠标悬停状态判断等交互功能。

文章目录

向对象内新增属性

第一步,确立待添加的属性名称及其对应的值;

let obj = {'a':123};

设定待合并的源对象;

let obj1 = {'c':1,'d':2};

调用Object.assign()函数实现对象合并

let twoobj = Object.assign(obj1,obj);
//两个注意的点:
//用一个新的名称来接受Object.assign的值;不要用obj1来接受,会报错
//第一个参数是原来的对象,第二个是要添加进去的对象;

实现对象动态属性添加的两种方案

具体需求

需为各课程项增加鼠标悬停状态检测功能

逻辑分析

鉴于数据采用动态渲染机制,需在渲染前获取数据并注入flag标识,随后添加自定义isHover属性,最终渲染处理后的数据以判定鼠标选中效果。

向对象内新增属性

向对象内新增属性

向对象内新增属性

以下展示两种动态添加对象属性的方式

向对象内新增属性

向对象内新增属性

  • for of 遍历对象,获取对象元素
  • for in 遍历对象,获取对象索引

补充说明:

this.videoList = []
      const data = await this.$http.post('Course/shows', {
        type: nedCuriculums.type,
        grade: nedCuriculums.grade,
        classtype: nedCuriculums.classtype,
        subject: nedCuriculums.subject,
        term: term
      }).catch(err => err)
      this.term = term
      var videoList = data.data
-----------------------------------------------------------
// 假如数据是这样:
videoList = [
	{
		id: 1
		type: "同步课程",
        grade: "一年级",
        classtype: "xxx",
        subject: "数学",
        term: "上"
     },
     {
     	id: 2
		type: "同步课程",
        grade: "一年级",
        classtype: "xxx",
        subject: "数学",
        term: "上"
     }
]
// 第一种方法,给对象动态添加属性 for of  根据对象
 var newvideoList = {}
 for (var item of videoList) {
   newvideoList = {
     isHover: false,
     dirname: item.dirname,
     id: item.id,
     resourceId: item.resourceId
   }
   this.videoList.push(newvideoList)
 }	
// 第2种方法  for in  根据下标
  for (var index in videoList) {
    videoList[index].isHover = false
    this.videoList.push(videoList[index])
    console.log(index)
    this.videoList.push(videoList[index])
  }

上述内容系个人经验总结,旨在提供参考,恳请读者支持本站。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章