创建对象
var obj= new Object();
//向obj对象添加属性name和age
obj.name="张三";
obj.age="18";
读取对象中的属性
语法:对象.属性名
console.log(obj.name);
修改对象的属性值
语法:对象.属性名=新值
obj.name="lisa"; //此时name的值从“张三”变为“lisa”
删除对象的属性
语法:delete 对象.属性名
delete obj.name; //返回结果为undefined
属性和属性值
属性
对象的属性名不强制要求遵守标识符的规范,但如果使用特殊的属性名,不能采用 . 的方式来操作
需要使用另一种方式:
语法:对象["属性名"] = 属性值
读取时也要采用这种方式
obj["123"] = 789;
console.log(obj["123"]);
* 使用[]这种形式去操作属性,更加的灵活
在[]中可以直接传递一个变量,这样变量值是多少就会读取那个属性
举个栗子:
obj["123"]=789;
obj["nihao"]="你好"
var n="123";
console.log(obj[n]);
此时返回值为“789”
如果把n的值改为“nihao”:
obj["123"]=789;
obj["nihao"]="你好"
var n="nihao";
console.log(obj[n]);
则返回值为“你好”
属性值
JS对象的属性值,可以是任意的数据类型:
obj.text=123;
obj.text="abc";
obj.text=null;
obj.text=undefined;
console.log(obj.text);
甚至可以是一个对象:
var obj= new Object();
var obj2=new Object();
obj2.name="熏悟空";
obj.text=obj2;
console.log(obj.text.name);
所以结果会输出“熏悟空”
* 平时用的大部分对象都不是自己创建的,而是直接引用,但是拿过来用的对象里有些什么属性我们并不知道,所以可以通过 in 运算符来检测一个对象中是否含有指定的属性:
语法:"属性名" in 对象
var obj= new Object();
obj.text=123;
obj.name="张三";
console.log("text" in obj);
因为对象obj中有text属性,所以返回true,否则返回false
对象字面量
创建对象除了前面的方法还有以下的方法:
语法:{属性名:属性值,属性名:属性值...}
举个栗子:
//创建对象
var obj={
name:"lisa",
age:18,
gender:"女"
};
注:每个属性之间用逗号隔开,最后一个属性不用写逗号