引用类型
虽然,引用类型看起来与类很相似,但是它们并不是相同的概念。
- ECMAScript虽然,从技术上讲,是一门面向对象的语言,但它不具备传统面向对象语言所支持的类和接口等基本结构
- 引用类型虽然,用于将数据和功能组织在一起,但它依然不妥被称作类。而是,有时被称为对象定义
引用类型的值(即对象),是引用类型的一个实例
Object 类型
- ECMAScript提供的一个原生引用类型
- 是ECMAScript中使用最多的一个类型
- 只为新对象定义了默认的属性和方法
- 对于,在应用程序中,存储和传输数据而言,它是个理想选择
new: 用于初始化
var person = new Object();
person.name = "Nicholas";
person.age = 29;
对象字面量: 用于初始化
对象字面量表示法:对象定义的一种简写形式
这种方式,不会调用构造函数
- 在最后一个属性后面加逗号,会在IE7及更早版本和Opera中导致错误
- 属性名,也可以使用字符串
- 如果留空花括号,则可以定义质保函默认属性和方法的对象
var person = {
name: "Nicholas",
age: "29"
};
var person = {
"name": "Nicholas",
"age": "29",
5: true // 5会被自动转换成字符串
};
var person = {}; //与 new Object()相同了
person.name = "Nicholas";
person.age = 29;
// 传给方法用很方便
displayInfo({
name: "Nicholas",
age: 29
});
displayInfo({
name: "Greg"
});
访问对象属性
- 点表示法,推荐使用
- 括号表示法
- 属性要以字符串形式放在方括号中
- 主要优点: 可以通过变量来访问属性
- 派上用场,当属性名使用的是关键字或保留字
- 派上用场,当属性名包含会导致语法错误的字符,如空格
alert(person.name);
alert(person["name"]);
//通过变量来访问属性
var propertyName = "name";
alert(person[propertyName]); //"Nicholas"
//属性名含有空格
person["first name"] = "Nicholas";