在 JavaScript 里,可以用哪些不同的方法来创建对象?
考察说明
考查对 JavaScript 对象创建多种方式的掌握程度及各自特点。
回答思路
- 【回答框架 1】对象字面量是最直接的方式,通过花括号直接定义属性和方法,适合创建单个对象,代码简洁直观。
- 【回答框架 2】构造函数方式通过 function 定义构造器,使用 new 关键字实例化,可创建多个相似对象,但需注意原型共享和 this 指向。
- 【回答框架 3】Object.create 方法基于指定原型创建新对象,适合实现继承或创建原型链上的对象,可精确控制原型关系。
- 【回答框架 4】ES6 的 class 语法是构造函数的语法糖,提供更清晰的面向对象写法,支持继承和静态方法,底层仍是原型链机制。
- 【回答框架 5】工厂函数通过普通函数返回新对象,避免 new 关键字,可灵活封装创建逻辑,但无法区分对象类型,且每个实例都是独立对象。
- 【关键点 1】对象创建方式包括字面量、构造函数、Object.create、class 和工厂函数。
- 【关键点 2】构造函数和 class 都需要 new 关键字,共享原型上的方法。
- 【关键点 3】Object.create 允许指定原型,适合原型式继承。
- 【关键点 4】工厂函数可替代构造函数,但实例不共享原型。
- 【关键点 5】ES6 class 本质是构造函数的语法糖,底层基于原型链。
- 【易错点 1】混淆构造函数和普通函数,忘记 new 会导致 this 指向全局对象。
- 【易错点 2】Object.create(null) 创建的对象没有原型,无法调用 Object 原型方法。
- 【易错点 3】过度使用工厂函数可能造成内存浪费,因为每个实例都复制方法。