JavaScript 对象创建、继承与类的全面解析
1. 原型模式的局限性
在 JavaScript 中,原型模式虽然有其独特之处,但也存在明显的局限性。例如,当 Person.prototype
对象有一个 friends
属性,它包含一个字符串数组。创建 Person
的两个实例后,修改其中一个实例的 friends
数组,另一个实例的 friends
数组也会受到影响,因为 friends
数组存在于 Person.prototype
上,而不是实例本身。
function Person() {}
Person.prototype.friends = ["Alice", "Bob"];
let person1 = new Person();
let person2 = new Person();
person1.friends.push("Charlie");
console.log(person2.friends); // ["Alice", "Bob", "Charlie"]
这表明,如果希望每个实例都有自己独立的属性副本,原型模式单独使用并不合适。
2. 原型继承与原型链
在面向对象编程中,继承是一个重要的概念。JavaScript 支持的是实现继承,主要通过原型链来实现。
- 原型链的基本原理 </