您的位置:首页 > Web前端 > JavaScript

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

2016-10-27 13:42 706 查看
  在其他语言中,对象一旦生成,就不可更改了,要为一个对象添加修改成员必须要在对应的类中修改,并重新实例化,而且程序必须经过重新编译。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);

  利用对象的这种性质,甚至可以很容易实现一个简单的哈希表。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: