对象的动态特性

2017-10-26  本文已影响0人  嗨黄先生

给对象动态添加属性

当一个对象需要某个属性的时候,可以用两种方式为其添加属性

直接使用对象名.属性名 = 值 这种形式,为对象添加对应的属性
使用关联数组语法 对象名["属性名"] = 值  
//o是一个没有任何自定义属性的对象
var o = {};

//现在想让他拥有name age gender等属性
//直接使用 对象名.属性名 = 值
o.name = "张三";



//使用 对象名["属性名"] = 值
o["age"] = 18;



//可以通过打印查看效果
console.log(o.name);
console.log(o.age);

注意:
当要动态的为一个对象添加属性的时候,必须使用关联数组的形式

//接收到了用户的输入
var str = prompt("请输入属性名");

o = {};
//o.str = "这是一个新属性"; //这么写是不对的,会给对象新增一个str属性
//正确的写法如下
o[str]="这是一个新属性";

对象的访问形式

点语法:对象名.属性名
关联数组: 对象[属性名]

var o ={
  name :"张三",
  sayHello:function(){
    console.log("你好,我叫"+this.name);
  }
};
//点语法
console.log(o.name);
//关联数组语法
console.log(o["name"]);
//这两种用法同样适用于方法
o.sayHello();
o["sayHello"]();

//可以对这个对象的属性进行遍历,如果是值就打印,如果是方法就调用
for(var k in o){
    if ( typeof o[ k ] == 'function' ) {
        o[ k ]();
    } else {
        console.log( 'log: ' + o[ k ] );
    }
}
上一篇下一篇

猜你喜欢

热点阅读