上一节介绍了如何引用一个对象的属性和方法,现在介绍如何为一个对象添加、修改或
者删除属性和方法。
在其他语言中,对象一旦生成,就不可更改了,要为一个对象添加修改成员必须要在对
应的类中修改,并重新实例化,而且程序必须经过重新编译。JavaScript 中却非如此,它提
供了灵活的机制来修改对象的行为,可以动态添加、修改、删除属性和方法。例如首先使用
类Object来创建一个空对象user:
var user=new Object();
1.添加属性
这时user 对象没有任何属性和方法,显然没有任何用途。但可以为它动态的添加属性
和方法,例如:
user.name=”jack”;
user.age=21;
user.sex=”male”;
通过上述语句,user 对象便具有了三个属性:name、age和sex。下面输出这三个语句:
alert(user.name);
alert(user.age);
alert(user.sex);
由代码运行效果可知,三个属性已经完全属于user 对象了。
2.添加方法
添加方法的过程和属性类似:
user.alert=function(){
alert(“my name is:”+this.name);
}
这就为user 对象添加了一个方法“alert”,通过执行它,可以弹出一个对话框显示自己
的名字介绍:
user.alert();
3.修改属性
修改一个属性的过程就是用新的属性替换旧的属性,例如:
user.name=”tom”;
user.alert=function(){
alert(“hello,”+this.name);
}
这样就修改了user 对象name属性的值和alert方法,它从显示“my name is”变为了显
示“hello”。
4.删除属性
删除一个属性的过程也很简单,就是将其置为undefined:
user.name=undefined;
user.alert=undefined;
这样就删除了name属性和alert方法。在之后的代码中,这些属性变的不可用。
在添加、修改或者删除属性时,和引用属性相同,也可以采用方括号([])语法:
user[“name”]=”tom”;
使用这种方式还有一个额外的特点,就是可以使用非标识符字符串作为属性名称,例如
标识符中不允许以数字开头或者出现空格,但在方括号([])语法中却可以使用:
user[“my name”]=”tom”;
需要注意,在使用这种非标识符作为名称的属性时,仍然要用方括号语法来引用:
alert(user[“my name”]);
而不能写为:
alert(user.my name);
利用对象的这种性质,甚至可以很容易实现一个简单的哈希表,在本书的后面将会看到
其应用。此可见,JavaScript中的每个对象都是动态可变的,这给编程带来了很大的灵活性,
也和其他语言产生了很大的区别,读者可以体会这种性质。

javascript动态添加、修改、删除对象的属性和方法相关推荐

  1. vue根据索引删除数组中的一个对象_Vue实现动态添加或者删除对象和对象数组的操作方法...

    添加核心代码如下: this.data.push({ type: [{ value: '选项1', label: 'in' }, { value: '选项3', label: 'out' }], va ...

  2. 如何动态添加修改删除定时任务

    如何动态添加修改删除定时任务 (1)思路说明: (a)首先这里我们需要重新认识一个类ThreadPoolTaskScheduler:线程池任务调度类,能够开启线程池进行任务调度. (b)ThreadP ...

  3. SpringBoot定时任务升级篇(动态添加修改删除定时任务)

    (1)思路说明: (a)首先这里我们需要重新认识一个类ThreadPoolTaskScheduler:线程池任务调度类,能够开启线程池进行任务调度. (b)ThreadPoolTaskSchedule ...

  4. Vue动态添加、删除对象属性

    最近对对象相关操作处理比较多,然后发现对象还可以这么玩 let student = { id: 1, name: '学生1', class: '001' };//通过student['对象新的属性ke ...

  5. js动态添加修改删除元素

    事件委托:e.target 核心:1.通过事件冒泡给子元素添加事件,控制新生成的元素进行操作 2.减少DOM元素操作,只需要绑定一个父元素就可以,不用循环遍历每一个子元素进行绑定事件操作,提高程序性能 ...

  6. Js 动态添加、删除 对象属性

    var obj = {} 或  var obj = new Object() //1.对象.属性 = 赋值 obj.aaa = 1 //2.对象[属性] = 赋值 obj["aaa" ...

  7. 基于js对象,操作属性、方法详解

    一,概述 在Java语言中,我们可以定义自己的类,并根据这些类创建对象来使用,在Javascript中,我们也可以定义自己的类,例如定义User类.Hashtable类等等. 目前在Javascrip ...

  8. JavaScript 高级篇之DOM文档,简单封装及调用、动态添加、删除样式(推荐七)

    前言 学习是有趣的,但有过滤的学习内容就更好,本博主就专门为刚接触javascript客户端编程的朋友提供及分享个人学习经历!建议大家看看:(汤姆大叔的博客) http://www.cnblogs.c ...

  9. JavaScript学习笔记:动态添加与删除表格行

    文章目录 一.添加表格行与单元格 二.动态删除表格行与单元格 三.案例演示1 四.案例演示2 一.添加表格行与单元格 Javascript可以控制table,动态的插入行和单元格.rows保存着< ...

最新文章

  1. mysql处理字符串的两个绝招:substring_index,concat
  2. 为uThreadPool增加线程池等待功能
  3. phpexecl保存mysql_【PHP】将数据库表保存为Excel(PHPExcel)
  4. presto-docker运行
  5. 一篇文章梳理完虚拟现实相关的核心技术 | 收藏
  6. [转]系统吞吐量(TPS)、用户并发量、性能测试概念和公式---学习
  7. Java数据保留小数
  8. SpringBoot之静态资源访问
  9. 22. 括号生成 golang 图解
  10. 7.中文输入验证-原生JS
  11. 慕课网_《Java实现对称加密》学习总结
  12. The Seven Tools of Causal Inference, with Reflections on Machine Learning
  13. 魅族pro5 刷机 android,魅族Pro5刷通用固件方法教程[多图]
  14. 税务会计实务【19】
  15. 如何申请免费的企业邮箱
  16. 去除马赛克,有办法了 附运行教程
  17. 脾气与冲突--试用ymlf下wine跑windows程序有感
  18. Ceph 存储集群5-数据归置
  19. TCP套接字编程详解
  20. 【易通慧谷】全渠道趋势下的建材家居供应链变革

热门文章

  1. USACO Section 1.1 Broken Necklace
  2. C语言二维数组元素的初始化
  3. Mysql存储过程-新增数据时多条件判定是否已经存在某值
  4. 一篇长文叙述Linux内核虚拟地址空间的基本概括
  5. “阿法狗”之父:关于围棋,人类3000年来犯了一个错!
  6. Android Jetpack Compose 播放器动画
  7. 【MySQL基础教程】事务详细介绍
  8. python读取nii文件、nii.gz文件
  9. 前端基础2——CSS3
  10. 论文阅读:LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation