对象字面量创建简洁但难复用;2. 构造函数可批量创建但方法重复;3. 原型共享方法节省内存;4. es6 class语法清晰推荐使用;5. 可动态增删属性方法,灵活操作。

javaScript 中创建对象是开发中的基础操作,掌握多种对象创建方式和属性方法的使用,能帮助你写出更清晰、可维护的代码。下面介绍几种常用的 js 对象创建方法以及如何添加和使用属性与方法。
1. 使用对象字面量创建对象
这是最简单、最常见的创建对象方式。通过花括号 {} 定义一个对象,直接在其中添加属性和方法。
let person = { name: "张三", age: 25, sayHello: function() { console.log("你好,我是" + this.name); } }; person.sayHello(); // 输出:你好,我是张三 console.log(person.age); // 输出:25
优点是语法简洁,适合创建单个对象。缺点是如果需要创建多个类似对象,会重复写大量代码。
2. 使用构造函数创建对象
当你需要创建多个结构相似的对象时,可以使用构造函数。通过 new 关键字调用构造函数生成实例。
function Person(name, age) { this.name = name; this.age = age; this.sayHello = function() { console.log("你好,我是" + this.name); }; } let p1 = new Person("李四", 30); let p2 = new Person("王五", 28); p1.sayHello(); // 输出:你好,我是李四 p2.sayHello(); // 输出:你好,我是王五
这种方式便于批量创建对象,但每次创建实例时,方法都会重新定义,占用更多内存。
3. 使用原型(prototype)优化方法共享
为了解决构造函数中方法重复定义的问题,可以把方法挂载到构造函数的原型上,实现方法共享。
function Animal(type) { this.type = type; } Animal.prototype.speak = function() { console.log(this.type + " 在叫"); }; let dog = new Animal("狗"); let cat = new Animal("猫"); dog.speak(); // 输出:狗 在叫 cat.speak(); // 输出:猫 在叫
所有实例共享 prototype 上的方法,节省内存,是传统面向对象编程中常用模式。
4. 使用 ES6 class 创建对象
ES6 引入了 class 语法,让对象创建更接近传统面向对象语言,本质上是构造函数的语法糖。
class Car { constructor(brand, year) { this.brand = brand; this.year = year; } start() { console.log(this.brand + " 启动了"); } } let myCar = new Car("丰田", 2020); myCar.start(); // 输出:丰田 启动了
代码更清晰,结构更规范,推荐在现代项目中使用。
5. 动态添加和访问属性与方法
JS 对象的灵活性允许你在任何时候添加或修改属性和方法。
let user = {}; user.username = "admin"; user.login = function() { console.log(this.username + " 登录成功"); }; user.login(); // 输出:admin 登录成功
也可以使用中括号语法动态设置属性名:
let key = "email"; user[key] = "admin@example.com"; console.log(user.email); // 输出:admin@example.com
6. 删除属性
使用 delete 操作符可以删除对象的属性或方法。
delete user.email; console.log(user.email); // 输出:undefined
基本上就这些。根据实际需求选择合适的对象创建方式,结合属性和方法的操作,就能灵活应对各种开发场景。