javascript动态添加、修改、删除对象的属性与方法详解


Posted in Javascript onJanuary 27, 2014

现在介绍如何为一个对象添加、修改或者删除属性和方法。在其他语言中,对象一旦生成,就不可更改了,要为一个对象添加修改成员必须要在对应的类中修改,并重新实例化,而且程序必须经过重新编译。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 相关文章推荐
使用JQuery进行跨域请求
Jan 25 Javascript
js控制输入框获得和失去焦点时状态显示的方法
Jan 30 Javascript
javascript生成随机数方法汇总
Nov 12 Javascript
JS获取月份最后天数、最大天数与某日周数的方法
Dec 08 Javascript
jquery实现拖动效果
Aug 10 Javascript
jquery+css3问卷答题卡翻页动画效果示例
Oct 26 Javascript
帝国cms首页列表页实现点赞功能
Oct 30 Javascript
Angular使用操作事件指令ng-click传多个参数示例
Mar 27 Javascript
JavaScript new对象的四个过程实例浅析
Jul 31 Javascript
微信小程序数据统计和错误统计的实现方法
Jun 26 Javascript
详解nginx配置vue h5 history去除#号
Nov 09 Javascript
jQuery冲突问题解决方法
Jan 19 jQuery
javascript中定义私有方法说明(private method)
Jan 27 #Javascript
用javascript替换URL中的参数值示例代码
Jan 27 #Javascript
jquery选择器之基本过滤选择器详解
Jan 27 #Javascript
jquery选择器之层级过滤选择器详解
Jan 27 #Javascript
jquery选择器之内容过滤选择器详解
Jan 27 #Javascript
jquery选择器之属性过滤选择器详解
Jan 27 #Javascript
jQuery自定义事件的简单实现代码
Jan 27 #Javascript
You might like
php 定界符格式引起的错误
2011/05/24 PHP
深入phpMyAdmin的安装与配置的详细步骤
2013/05/07 PHP
解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)
2013/07/03 PHP
新浪SAE搭建PHP项目教程
2015/01/28 PHP
JavaScript学习笔记(十)
2010/01/17 Javascript
js自执行函数的几种不同写法的比较
2012/08/16 Javascript
javascript ie6兼容position:fixed实现思路
2013/04/01 Javascript
js获取指定日期前后的日期代码
2013/08/20 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
2013/10/17 Javascript
JS和JQUERY获取页面大小,滚动条位置,元素位置(示例代码)
2013/12/14 Javascript
ExtJs动态生成treepanel的Json格式
2015/07/19 Javascript
适用于javascript开发者的Processing.js入门教程
2016/02/24 Javascript
理解JavaScript原型链
2016/10/25 Javascript
JavaScript表单验证完美代码
2017/03/02 Javascript
使用vue.js编写蓝色拼图小游戏
2017/03/17 Javascript
AngularJS实现进度条功能示例
2017/07/05 Javascript
JavaScript高级函数应用之分时函数实例分析
2018/08/03 Javascript
vue flex 布局实现div均分自动换行的示例代码
2020/08/05 Javascript
[43:35]EG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python中的闭包详细介绍和实例
2014/11/21 Python
python制作简单五子棋游戏
2019/06/18 Python
Python GUI自动化实现绕过验证码登录
2020/01/10 Python
TensorFlow dataset.shuffle、batch、repeat的使用详解
2020/01/21 Python
Python+Dlib+Opencv实现人脸采集并表情判别功能的代码
2020/07/01 Python
PyCharm设置注释字体颜色以及是否倾斜的操作
2020/09/16 Python
餐饮主管岗位职责
2013/12/10 职场文书
客户服务经理岗位职责
2014/01/29 职场文书
幼儿园毕业家长感言
2014/02/10 职场文书
酒店总经理助理职责
2014/02/12 职场文书
创建文明学校实施方案
2014/03/11 职场文书
小学生安全演讲稿
2014/04/25 职场文书
导游欢送词
2015/01/31 职场文书
幼儿园老师工作总结2015
2015/05/22 职场文书
幼儿园毕业致辞
2015/07/29 职场文书
图解上海144收音机
2021/04/22 无线电
纯CSS如何禁止用户复制网页的内容
2021/11/01 HTML / CSS