第五章 引用类型
引用类型的值(对象)是引用类型的一个实例。
在 ECMAScript 中,引用类型是一种数据结构,用于将数据和功能组织在一起。
别称:
- 类,但这种称呼并不妥当。
- 对象定义,因为它们描述的是一类对象所具有的属性和方法
引用类型与类看起来相似,但它们并不是相同的概念。
ECMAScript从技术上讲是一门面向对象的语言,但它不具备传统的面向对象语言所支持的类和接口等基本结构。
对象是某个特定引用类型的实例。新对象是使用 new 操作符后跟一个构造函数来创建的。
原生引用类型:
1. Object 类型
Object 的实例虽不具备多少功能,但对于在应用程序中存储和传输数据而言,它们确实是非常理想的选择。
示例创建方式:
- new 构造函数()
var person = new Object();
person.name = "Nicholas";
person.age = 29;
- 对象字面量
var person = {
name : "Nicholas",
age : 29
};
属性名会自动转换为字符串
在通过对象字面量定义对象时,实际上不会调用 Object 构造函数(Firefox 2 及更早版本会调用 Object 构造函数;但 Firefox 3 之后就不会了)。
对象字面量是向函数传递大量可选参数的首选方式
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);
}
访问对象属性的方法:
- 点表示法
- 方括号表示法(属性名以字符串形式放在方括号中)
alert(person["name"]); //"Nicholas"
alert(person.name); //"Nicholas"
方括号语法的优点:
- 可以通过变量来访问属性
var propertyName = "name";
alert(person[propertyName]); //"Nicholas"
- 属性名中包含会导致语法错误的字符,或者属性名使用的是关键字或保留字
person["first name"] = "Nicholas";