在日常写网页交互的时候,经常要处理数据,而JSref="/tag/241/" style="color:#2B406D;font-weight:bold;">对象就是最常用的容器之一。比如你做个购物车功能,商品信息用对象来存就特别方便。下面几种创建对象的方法,都是平时开发中真真实实会用到的。
字面量方式最常见
这是最简单直接的方式,适合大多数场景。比如你要存一个用户信息:
const user = {
name: '张三',
age: 28,
city: '杭州'
};
console.log(user.name); // 输出:张三
构造函数灵活复用
如果你需要批量生成结构相似的对象,比如多个用户,用构造函数更合适:
function Person(name, age) {
this.name = name;
this.age = age;
}
const p1 = new Person('李四', 25);
const p2 = new Person('王五', 30);
每次用 new 关键字,就能得到一个新对象,属性值还不一样。
Object.create 创建继承关系
想让一个对象以另一个对象为原型,可以用 Object.create。比如你有个基础配置:
const defaultConfig = {
theme: 'light',
autoSave: true
};
const userConfig = Object.create(defaultConfig);
userConfig.theme = 'dark'; // 覆盖默认值
这样 userConfig 就能继承默认配置,同时还能自定义。
ES6 class 语法更清晰
现在很多人喜欢用 class 写法,看着更像传统语言,逻辑也清楚:
class Animal {
constructor(type) {
this.type = type;
}
speak() {
console.log(this.type + ' 在叫');
}
}
const dog = new Animal('狗');
dog.speak(); // 输出:狗 在叫
其实这背后还是基于原型的机制,只是写起来更直观。
动态创建也能应对复杂情况
有时候属性名是变量,或者要根据条件加属性,可以用计算属性或后续赋值:
const key = 'email';
const dynamicObj = {
[key]: 'zhangsan@example.com',
['age' + 2024]: 28
};
// 结果:{ email: 'zhangsan@example.com', age2024: 28 }
这种技巧在处理表单数据或API返回时挺实用。
不同的创建方式各有用途,选哪种主要看你的具体需求。字面量最快捷,构造函数和 class 适合复用,Object.create 处理继承很顺手。实际写代码时混着用也没问题,关键是清楚每种方式的特点。