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 FlexiGrid的asp.net完美解决方案 dotNetFlexGrid-.Net原生的异步表格控件
Sep 12 Javascript
cument.execCommand()用法深入理解
Dec 04 Javascript
jQuery自动添加表单项的方法
Jul 13 Javascript
Jquery实现瀑布流布局(备有详细注释)
Jul 31 Javascript
Javascript将字符串日期格式化为yyyy-mm-dd的方法
Oct 27 Javascript
详解Jquery的事件操作和文档操作
Dec 19 Javascript
详解vue模拟加载更多功能(数据追加)
Jun 23 Javascript
详解在vue-cli中引用jQuery、bootstrap以及使用sass、less编写css
Nov 08 jQuery
基于layui数据表格以及传数据的方式
Aug 19 Javascript
解决layui上传文件提示上传异常,实际文件已经上传成功的问题
Aug 19 Javascript
uniapp实现可以左右滑动导航栏
Oct 21 Javascript
如何利用React实现图片识别App
Feb 18 Javascript
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/12/30 PHP
php编写简单的文章发布程序
2015/06/18 PHP
php关键字仅替换一次的实现函数
2015/10/29 PHP
PHP基本语法实例总结
2016/09/09 PHP
Yii统计不同类型邮箱数量的方法
2016/10/18 PHP
浅谈php中的循环while、do...while、for、foreach四种循环
2016/11/05 PHP
Prototype 学习 工具函数学习($A方法)
2009/07/12 Javascript
jquery给图片添加鼠标经过时的边框效果
2013/11/12 Javascript
nodejs npm package.json中文文档
2014/09/04 NodeJs
JavaScript如何获取数组最大值和最小值
2015/11/18 Javascript
谈谈我对JavaScript DOM事件的理解
2015/12/18 Javascript
AngularJS基础 ng-dblclick 指令用法
2016/08/01 Javascript
概述javascript在Google IE中的调试技巧
2016/11/24 Javascript
深入解析Vue 组件命名那些事
2017/07/18 Javascript
vue+SSM实现验证码功能
2018/12/07 Javascript
js实现无限层级树形数据结构(创新算法)
2020/02/27 Javascript
解决vue 使用axios.all()方法发起多个请求控制台报错的问题
2020/11/09 Javascript
讲解Python中fileno()方法的使用
2015/05/24 Python
Python下载指定页面上图片的方法
2016/05/12 Python
Python中安装easy_install的方法
2018/11/18 Python
python调试神器PySnooper的使用
2019/07/03 Python
关于PyTorch源码解读之torchvision.models
2019/08/17 Python
在OpenCV里使用特征匹配和单映射变换的代码详解
2019/10/23 Python
Python 多线程共享变量的实现示例
2020/04/17 Python
python3爬虫中多线程进行解锁操作实例
2020/11/25 Python
大一自我鉴定范文
2013/10/04 职场文书
心理健康教育制度
2014/01/27 职场文书
网络编辑岗位职责范本
2014/02/10 职场文书
个人简历中自我评价
2014/02/11 职场文书
财务总监管理岗位职责
2014/03/08 职场文书
出纳员岗位职责
2014/03/13 职场文书
第28个世界无烟日活动总结
2015/02/10 职场文书
计划生育责任书
2015/05/09 职场文书
普通员工辞职信范文
2015/05/12 职场文书
小学运动会开幕词
2016/03/04 职场文书
MongoDB使用场景总结
2022/02/24 MongoDB