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 相关文章推荐
JavaScript 指导方针
Apr 05 Javascript
自己使用jquery写的一个无缝滚动的插件
Apr 30 Javascript
JavaScript实现的Tween算法及缓冲特效实例代码
Nov 03 Javascript
只需五句话搞定JavaScript作用域(经典)
Jul 26 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
Jul 27 Javascript
JS中跳出循环的示例代码
Sep 14 Javascript
vue中锚点的三种方法
Jul 06 Javascript
使用canvas实现一个vue弹幕组件功能
Nov 30 Javascript
vue实现记事本功能
Jun 26 Javascript
微信小程序解析富文本过程详解
Jul 13 Javascript
JS变量提升原理与用法实例浅析
May 22 Javascript
JQuery获得内容和属性方法解析
May 30 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
如何删除多级目录
2006/10/09 PHP
php生成酷炫的四个字符验证码
2016/04/22 PHP
计算世界完全对称日的js代码,粗糙版
2011/11/04 Javascript
javascript里模拟sleep(两种实现方式)
2013/01/25 Javascript
js和html5实现手机端刮刮卡抽奖效果完美兼容android/IOS
2013/11/18 Javascript
javascript判断两个IP地址是否在同一个网段的实现思路
2013/12/13 Javascript
javascript设置连续两次点击按钮时间间隔的方法
2014/10/28 Javascript
jQuery简单实现网页选项卡特效
2014/11/24 Javascript
JS动态显示表格上下frame的方法
2015/03/31 Javascript
百度地图api如何使用
2015/08/03 Javascript
解决JS无法调用Controller问题的方法
2015/12/31 Javascript
非常实用的js验证框架实现源码 附原理方法
2016/06/08 Javascript
jquery通过name属性取值的简单实现方法
2016/06/20 Javascript
JS继承与闭包及JS实现继承的三种方式
2017/10/15 Javascript
微信小程序如何使用canvas二维码保存至手机相册
2019/07/15 Javascript
Vuex 模块化使用详解
2019/07/31 Javascript
[52:12]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
Python与R语言的简要对比
2017/11/14 Python
对于Python深浅拷贝的理解
2019/07/29 Python
浅谈python累加求和+奇偶数求和_break_continue
2020/02/25 Python
Python3 hashlib密码散列算法原理详解
2020/03/30 Python
django序列化时使用外键的真实值操作
2020/07/15 Python
解决python中0x80072ee2错误的方法
2020/07/19 Python
python安装mysql的依赖包mysql-python操作
2021/01/01 Python
SQL SERVER面试资料
2013/03/30 面试题
体育教师自我鉴定
2014/02/12 职场文书
市场专员岗位职责
2014/02/14 职场文书
道路建设实施方案
2014/03/18 职场文书
单位委托书范本(3篇)
2014/09/18 职场文书
工作作风整顿个人剖析材料
2014/10/11 职场文书
幼儿教师辞职信范文
2015/03/02 职场文书
追讨欠款律师函
2015/05/27 职场文书
宾馆客房管理制度
2015/08/06 职场文书
优秀党员先进事迹材料2016
2016/02/29 职场文书
创业计划书之家教中心
2019/09/25 职场文书
python实现自动清理文件夹旧文件
2021/05/10 Python