Chinaunix首页 | 论坛 | 博客
  • 博客访问: 144637
  • 博文数量: 27
  • 博客积分: 2613
  • 博客等级: 少校
  • 技术积分: 270
  • 用 户 组: 普通用户
  • 注册时间: 2004-12-17 13:12
个人简介

No pain, no gain.

文章分类

全部博文(27)

文章存档

2011年(4)

2010年(2)

2009年(2)

2008年(3)

2007年(2)

2006年(4)

2005年(4)

2004年(6)

我的朋友

分类: 系统运维

2011-02-16 16:22:07

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

 

介绍Javascript如何为一个对象添加、修改或

者删除属性和方法。

在其他语言中,对象一旦生成,就不可更改了,要为一个对象添加修改成员必须要在对应的类中修改,并重新实例化,而且程序必须经过重新编译。JavaScript 中却非如此,它提供了灵活的机制来修改对象的行为,可以动态添加、修改、删除属性和方法。例如首先使用类Object来创建一个空对象user

var user=new Object();

1.添加属性

这时user 对象没有任何属性和方法,显然没有任何用途。但可以为它动态的添加属性

和方法,例如:

user.name=”jack”;

user.age=21;

user.sex=”male”;

通过上述语句,user 对象便具有了三个属性:nameagesex。下面输出这三个语句:

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中的每个对象都是动态可变的,这给编程带来了很大的灵活性,

也和其他语言产生了很大的区别,读者可以体会这种性质。

阅读(8995) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-03-06 17:13:36

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com