← 返回目录

13. 对象创建与增删改查

对象就是带标签的箱子,用键值对存数据,一个变量存一堆相关信息。

核心三步:
创建——let obj = { name:"小明", age:18 }
取值——obj.name 或 obj["name"]
改值/加值——obj.age = 20、obj.gender = "男"

坑:键名不加引号也行、删除属性用 delete、对象赋值是引用不是复制

13.1 互动演示(对象增删改查 + . 与 [] 动态取值)

点按钮操作一个 cat 对象,亲眼看增删改查和 . / [] 的区别。

13.2 知识点逐条讲解(配合代码)

① 两种做对象的方式

// 方式1:花括号(开发首选,一口气写完)
let cat = {
  // 属性:名字
  name: "小桔子",
  // 属性:性别
  sex: "公猫",
  // 方法:会跑
  speed: function () { console.log("每小时跑50km"); }
// 方式2:先空壳,再一行行加点填
};

let cat = new Object();

// 加个名字
cat.name = "小桔子";

// 加个会叫
cat.sound = function () { console.log("喵喵"); };

② 取值:点 . 和方括号 [] 的区别

写法什么时候用
cat.name(点)名字固定、好认,最常用
cat["name"]([])名字存在变量里、或带空格/横杠时用
// key里装着名字"color"
let key = "color";

// 按变量里的名字去取
console.log(cat[key]);

// 方括号里直接写字符串也行
console.log(cat["sex"]);

// 带横杠的名字必须用方括号
let p = { "home-address": "北京" };

// 点语法会报错
console.log(p["home-address"]);

③ 增删改查

let cat = { name: "小桔子" };

// 查:读出名字
console.log(cat.name);

// 加:原本没有age,赋值就加上了
cat.age = 2;

// 改:名字重新赋值
cat.name = "大桔子";

// 删:用 delete 关键字整项拿掉
delete cat.age;

属性 vs 方法别搞混:存普通数据叫属性,存函数叫方法。它们单独放是变量/函数,装进对象里就改名叫属性/方法了。

⑥ X.3 实战:用在哪 / 常见坑 / 怎么解决

① 用在哪:商品信息、用户资料、配置项——都是一个对象装一整套描述。

② 常见坑:属性名带横杠却用 语法;动态取属性写成 cat.key 取了字面量 "key"。

③ 怎么解决:动态/特殊名一律 cat[key];删除用 delete cat.age

一句话记住:对象=属性+方法;开发用花括号 {};固定名字用点 .,动态/带横杠用 [] 且要加引号;加/改直接赋值,删用 delete

本页重点

API作用参数返回值代码示例
{}花括号创建对象属性名:值对象
let cat = { name: "橘", age: 2 };
obj.key点语法读/写属性属性名
cat.name;  // "橘"
obj[key]方括号读动态属性变量
cat["name"];  // 变量当key
delete obj.key删掉一个属性属性名真/假
delete cat.age;
Object.keys(obj)列出所有属性名对象数组
Object.keys(cat);  // ["name","age"]
JSON.stringify(obj)对象转成字符串对象字符串
JSON.stringify(cat);  // 变字符串