Object类型
创建Object实例的方式有两种。
* 使用new操作符
* 使用字面量
创建Object:使用new操作符
var person = new Object();
person.name = "Nicholas";
person.age = 29;
创建Object:使用字面量
var person = {
name : "Nicholas",
age : 29
}
在使用对象字面量语法时,属性名也可以使用字符串。
var person = {
"name" : "Nicholas",
"age" : 29,
5 : true
}
数值属性名会自动转换为字符串。
另外,使用对象字面量语法时,如果留空其花括号,则可以定义只包含默认属性和方法的对象,如下所示:
var person = {}; // 与new Object()相同
person.name = "Nicholas";
person.age = 29;
在通过对象字面量定义对象时,实际上不会调用Object构造函数。
对象字面量代码量少,给人封装数据的感觉。实际上,对象字面量也是向函数传递大量可选参数的首选方式。
function displayInfo(args){
var output = "";
if(typeof args.name == "string"){
output += "Name: " + args.name + "\n";
}
if(typeof args.age == "number"){
output += "Age:" + args.age + "\n";
}
alert(output);
}
displayInfo({
name : "Nicholas",
age : 29
});
displayInfo({
name : "Greg"
});
这种传递参数的模式最合适向函数传入大量可选参数的情形。
访问对象属性
- 点语法
alert(person.name); // "Nicholas"
- 方括号
alert(person["name"]); // "Nicholas"
使用方括号语法时,应该将要访问的属性以字符串的形式放在方括号中。
从功能上看,这两种访问对象属性的方法没有任何区别。但方括号语法的主要优点是可以通过变量来访问属性,如:
var propertyName = "name";
alert(person[propertyName]); // "Nicholas"