JavaScript 对象

真实世界的东西都有"属性"和"行为":手机有品牌、价格(属性),能打电话(行为)。JS 用对象来模拟这一切:属性保存数据,方法保存函数。对象是 JS 最核心的数据结构,必须掌握。

什么是对象

对象用 { } 包裹,里面是一组"键值对"(键: 值),键就是属性名:

let phone = {
  brand: "华为",    // 属性:品牌
  price: 3999,     // 属性:价格
  color: "黑色"     // 属性:颜色
};
console.log(phone.brand);   // 输出:华为

创建对象:字面量

直接在 { } 里写属性的方式叫对象字面量,最常用:

let student = {
  name: "小明",
  age: 18,
  score: 92
};
console.log(student.name);   // 输出:小明
console.log(student.age);    // 输出:18

也可以用 new Object() 创建后再逐个加属性,但不常用:

let dog = new Object();
dog.name = "旺财";
console.log(dog.name);       // 输出:旺财

访问与修改属性

用"点号"访问属性;[] 也能访问,而且方括号里可以放变量(动态键名):

let user = { name: "小红", age: 20 };
user.age = 21;            // 修改已有属性
user.city = "北京";        // 新增属性
console.log(user.age);    // 输出:21
console.log(user.city);   // 输出:北京

let key = "name";
console.log(user[key]);   // 输出:小红(用变量当键名)

对象方法

如果属性的值是一个函数,就叫"方法":

let person = {
  name: "李雷",
  sayHello: function () {
    console.log("你好,我是" + this.name);
  }
};
person.sayHello();
// 输出:你好,我是李雷

方法里的 this 指向当前对象本身(this 的细节在后续章节展开)。

遍历对象:for...in

用 for...in 可以逐个取出对象的所有键名:

let car = { brand: "BYD", color: "白色", price: 12 };
for (let key in car) {
  console.log(key + " = " + car[key]);
}
// 输出:brand = BYD
// 输出:color = 白色
// 输出:price = 12

小结

对象用 { } 收纳"属性 + 方法":点号访问、方括号动态取值、for...in 遍历,是操作对象的三大基本功。其实数组、函数在 JS 底层也都是对象。

笔记加载中…