Javascript 高级编程 5章83页 【引用类型】

77 阅读2分钟

引用类型

虽然,引用类型看起来与很相似,但是它们并不是相同的概念。

  • 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";